2011-11-08 8 views
2

私はExt.form.PanelインスタンスをAJAXのものを使わずに古い方法で提出する必要があります。私はstandardSubmit: trueパラメータを使用していくつかのソリューションを見つけました。私はこのように使用します:同期(古い方法)Ext.form.Panel送信

Ext.define('MyForm', { 
    id: 'myform', 
    extend: 'Ext.form.Panel', 
    url: '/some/url/' 
    standardSubmit: true, 
    ... 
    buttons: { 
     ... 
     handler: function() { 
      Ext.getCmp('myform').getForm().submit(); 
     } 
    } 
}) 

No URL specifiedエラーが表示されます。私はsubmitメソッドで異なるparamsの組み合わせを渡そうとしましたが、私には奇妙なエラーがたくさんあります。誰かが実用的な例を共有してもらえますか?ここで

+0

同期Ext.jsサブミットを探しているときにこの質問が見つかりました。 'standardSubmit'はページ全体をリフレッシュします。 'Ext.Ajax.request({...、async:false、...})'は私が探していたものでした。 – Meredith

答えて

2

は何FormPanelをサブクラス化した場合Ext.form.Panelのためのドキュメントは

を言い、BasicFormのための任意の構成オプションは、これまでのところFormPanel

のinitialConfigプロパティに適用されなければなりません上記のコードは次のようになります。

Ext.define('MyForm', { 
    extend: 'Ext.form.Panel', 
    ...  
    initComponent: function() { 
     var me = this 
     Ext.apply(me.initialConfig, { 
      url: '/some/url', 
      standardSubmit: true, 
      method: 'GET' 
     }) 
     ... 
     me.buttons = { 
      ... 
      text: 'Submit', 
      handler: function() { 
       me.getForm().submit(); 
      } 
     } 
     me.callParent() 
    } 
}) 

明らかにわかりません。しかしそれは問題を解決する。

0

私はほぼ一週間それを探しました! Radagastのコードが動作します! ext-407-gpl以外のコードはありません。

var login_form = Ext.create('Ext.form.Panel', { 
    frame:true, 
    title: '<?php echo $this->escape($this->message); ?>', 
    url: '<?php echo $this->baseUrl ?>/auth/login', 
    standardSubmit: true, 
    bodyStyle:'padding:5px 5px 0', 
    width: 350, 
    fieldDefaults: { 
     msgTarget: 'side', 
     labelWidth: 75 
    }, 
    defaultType: 'textfield', 
    defaults: { 
     anchor: '100%' 
    }, 
items: [{ 
     fieldLabel: 'login', 
     name: 'login_id', 
     allowBlank:false 
    },{ 
     fieldLabel: 'password', 
     name: 'passwd', 
     inputType: 'password' 
    }], 

    buttons: [{ 
     text: 'submit', 
     type: 'submit', 
     handler: function() { this.up('form').getForm().submit(); } 
    }, { 
     text: 'reset', 
     type: 'reset', 
     handler: function() { this.up('form').getForm().reset(); } 
    }] 
}); 
関連する問題