ExtJSのモーダルウィンドウ内のフォームをシリアル化する方法は?

StackOverflow https://stackoverflow.com/questions/1616275

  •  06-07-2019
  •  | 
  •  

質問

サーバーから渡された単一のJavaScriptオブジェクトから、オンザフライでモーダルウィンドウを構築しようとしています。 しかし、フォーム変数を定義せずにモーダルウィンドウ内でフォームをシリアル化する方法はわかりません。 ほとんどの例では、シリアル化プロセスは次のようになります。

//create form
var CustomForm = new Ext.FormPanel({...});
//submiting form
CustomForm.getForm().submit({...});

私の場合、「フォーム」などのすべての内部コンポーネントxtype値から作成され、変数は割り当てられません。 次のようなものを使用してフォームを選択してシリアル化する方法はありますか:

Ext.get(this).select('form').serialize();

または適切な方法は何ですか?

役に立ちましたか?

解決

フォームにIDを割り当て、Ext.getCmp(formid)を使用できます。

FormPanelのフォーム値を取得するには、 myFormPanel.getForm()。getValues()

を使用します

フォームフィールドを表すjsオブジェクトが返されます。

他のヒント

フォームから値を取得し、クエリ文字列に追加する文字列を生成する関数を作成しました:

/**
 * takes an array of form values and converts them into a
 * query string
 * 
 * @param {object} Ext.form
 * @return {string} 
 */
this.serialize_form_values = function(form)
{
    var serial = '',
        values = form.getValues();

    for(var value in values)
        serial += '&' + value + '=' + values[value];

    return serial.substr(1);
};

誰かに役立つかもしれない?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top