Как сериализовать форму внутри модального окна в ExtJS?
-
06-07-2019 - |
Вопрос
Я пытаюсь создать модальные окна "на лету" из одного объекта javascript, передаваемого сервером.Но я понятия не имею, как я могу сериализовать форму внутри модального окна без определения переменной формы.В большинстве примеров процесс сериализации выглядит следующим образом:
//create form
var CustomForm = new Ext.FormPanel({...});
//submiting form
CustomForm.getForm().submit({...});
В моем случае все внутренние компоненты, такие как "form", создаются из значения xtype, и ему не присваивается никакая переменная.Есть ли какой-нибудь способ выбрать и сериализовать форму, используя что-то вроде этого:
Ext.get(this).select('form').serialize();
или каков подходящий способ сделать это?
Решение
Вы можете присвоить форме идентификатор и использовать 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);
};
Может быть, это кому-нибудь пригодится?