在我的表格上,我有一个textarea,需要一个单词列表。例如word1,word2,word3等。用户可以根据需要添加任意数量的单词。我的应用程序将此条目作为单个字符串“word1,word2,word3”返回,并将其转换为数组,我必须执行myString.split(“,”)。
我想知道是否可以设置表单以便extjs知道它应该在提交数据时将其转换为数组?类似的东西:
var myField = {
xtype : 'textarea',
fieldLabel : 'Words',
name : 'words',
type: 'array'
}
编辑:我也很高兴有一些onSubmit函数在发送之前将字段的值设置为数组客户端
答案 0 :(得分: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函数来处理表单的模型。