質問
サーバーから渡された単一の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);
};
誰かに役立つかもしれない?
所属していません StackOverflow