【问题标题】:Can I submit a field value as an array with extjs?我可以使用 extjs 将字段值作为数组提交吗?
【发布时间】:2013-05-14 09:09:14
【问题描述】:

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

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

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

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

【问题讨论】:

  • 在提交过程中,您想如何将数组发送到服务器?
  • 可能会将其发送为 JSON 数组而不是字符串格式。例如{"words": ["word1","word2"]} 而不仅仅是 {"words":"word1,word2"}。我不知道有什么其他方法可以做到

标签: java arrays extjs


【解决方案1】:

假设您使用 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 函数来处理表单的模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2012-03-18
    • 2012-07-19
    相关资源
    最近更新 更多