1

在我的表单上,我有一个文本区域,它需要一个单词列表。例如 word1、word2、word3 等。用户可以输入任意数量的单词。我的应用程序将此条目作为单个字符串“word1,word2,word3”取回,并将其转换为数组我必须执行 myString.split(",")。

我想知道是否可以设置表单以便 extjs 知道它应该在提交数据时将其转换为数组?就像是:

var myField = {
            xtype : 'textarea',
            fieldLabel : 'Words',
            name : 'words',
            type: 'array'
    }

编辑:我也很高兴拥有某种 onSubmit 函数,该函数在发送之前将字段的值设置为数组客户端

4

1 回答 1

0

假设您使用 extjs 4 及更高版本,我会建议以下内容:

覆盖Ext.form.field.TextArea字段并实现它的getModelData( )功能是这样的:

getModelData: function() {
    var me = this,
    data = null;
    if (!me.disabled && !me.isFileUpload()) {
        data = {};
        data[me.getName()] = me.getValue().split(",");
    }
    return data;
}

这将允许 Ext 将字段的模型值正确解释为字符串数组。然后您的表单模型将包含适合您的字段的数组。您可以要求getFieldValues()您的基本表单返回相应的 json 以将其发送到服务器,或者您可以使用 Ext MVC 函数来处理表单的模型。

于 2013-05-14T13:23:07.200 回答