0

次のコードを使用してフォームの値を取得する関数があります-

var formValues = this.myForm.getForm().getValues();

MyForm には、フォームをロードするコンボボックスが含まれています。(コンボロードとフォームロードには 2 つの別々のリクエストがあります)

これら 2 つのリクエストは同時にロードされているため、上記のコードはまだロード中であるため、コンボ値を返しません。

上記のコードにすべてのフォーム値が含まれるように、コンボ値がロードされているかどうかを確認し、フォームロードの ajax リクエストのみを送信する方法はありますか?

編集:

LoadComboBox 関数は、データを何らかのストアで埋めるだけです。

以下は、フォームロードのコードです-

loadFormGrid: function (){
var allValues = this.myForm.getForm().getValues(); // this do not consider combobox values

Ext.Ajax.request({
      params: {action: 'getList', data : allValues },

      // ... some code
 });
}
4

1 に答える 1

1

私は次のようなことをします:

コンボ ボックスのロードの成功イベントで、フォームのロード メソッドを呼び出すか、Ajax リクエストを作成してフォームのフィールドにデータを入力します。

編集: ここに私が意味するものがあります:

ComboBox をインスタンス化する場所は、おそらく次のようになります。

var combo = new Ext.form.ComboBox({
 store : new someStoreType({
           //add to catch the loaded event
           listeners : {
              'load' : function(store, recs, options){
                      loadFormGrid(); 
                  } 
            }
         })
});

上記のストア リスナー ( 'load') は、コンボ ボックスがロードされたときにキャッチし、関数を呼び出してフォームに入力/ロードします。

于 2012-12-26T14:29:47.053 に答える