Как сериализовать форму внутри модального окна в ExtJS? - PullRequest
2 голосов
/ 24 октября 2009

Я пытаюсь построить модальные окна на лету из одного объекта javascript, переданного сервером. Но я понятия не имею, как я могу сериализовать форму внутри модального окна без определения переменной формы. В большинстве примеров процесс сериализации выглядит так:

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

В моем случае все внутренние компоненты, такие как «форма», создаются из значения xtype, и никакие переменные ему не назначаются. Есть ли способ выбрать и сериализовать форму, используя что-то вроде этого:

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

или как это можно сделать?

Ответы [ 2 ]

4 голосов
/ 24 октября 2009

Вы можете присвоить форме идентификатор и использовать Ext.getCmp (formid).

Для извлечения значений формы FormPanel используйте myFormPanel.getForm().getValues()

Это вернется с объектом js, представляющим поля формы.

1 голос
/ 25 июня 2011

Я написал функцию для получения значений из формы и генерации строки для добавления в строку запроса:

/**
 * 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);
};

Может быть, это кому-нибудь пригодится?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...