ExtJs:TextArea如何将值作为数组而不是字符串返回?

时间:2017-04-28 09:01:47

标签: extjs extjs6 extjs6.2

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

line 1
line 2

绑定值目前是一个字符串:

value= "line 1↵line 2"

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

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

value : ["line1", "line2"]

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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');
    }

});




答案 2 :(得分:0)

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