我正在尝试从服务器传递的单个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