1

在 ExtJs 6.2 上,我有一个带有 TextArea 的表单。当用户在多行上输入文本时,例如:

line 1
line 2

绑定的值当前是一个字符串:

value= "line 1↵line 2"

但是当商店提交时,我需要将值(到服务器)作为数组发送。

如何告诉 textarea 将输入文本作为数组返回?

value : ["line1", "line2"]

无需在服务器端将字符串拆分为数组。

编辑:我不想仅仅分割价值。因为我会更新 textarea 的默认行为以避免每次使用它时都必须应用拆分(在 ViewController 中)。

4

3 回答 3

2

document.getElementById('textarea').value.split('↵')

于 2017-04-28T10:29:52.213 回答
2

我已经创建了一个关于如何处理它的小提琴(假设我已经正确理解了您的要求!)

https://fiddle.sencha.com/#view/editor&fiddle/1uq7

此示例在进入 textarea 时将数组转换为字符串,并在退出时将其拆分。

Ext.define('ArrayTextArea', {
    extend: 'Ext.form.field.TextArea',

    alias: 'widget.arraytextarea',

    setValue: function(val){
        // if it's an array then join with a newline
        if(Ext.isArray(val)){
            val = val.join('\n');
        }

        return this.callParent([val]);
    },
    getValue: function(){
        var val = this.callParent(arguments);

        // split the value by newline char
        return val.split('\n');
    }

});

于 2017-04-28T12:36:40.960 回答
0

您可以使用 sencha http://docs.sencha.com/extjs/5.0.0/api/Ext.form.field.TextArea.html#placeholder-simple-getValue提供的标准方式 检查并回复。

于 2017-04-28T11:35:14.460 回答