在变更侦听器上操作ExtJS TextArea值

时间:2018-07-09 08:26:40

标签: extjs4

我使用Ext.form.field.TextArea,用户可以在其中输入普通文本或用破折号分隔的文本。如果用户输入带破折号的字符串,则应将其输入转换为<ul>列表。 这是代码:

createField: function (name, label, value, translatable, data, record) {
    var me = this,
    configuration = {
        data: data,
        anchor: '100%',
        name: name,
        translatable: translatable,
        fieldLabel: label,
        value: value,
        listeners: {
            change: function(me, record){
                var enteredVal = me.value;
                var newMe = Object.assign({}, me);

                if(enteredVal.indexOf('-') > -1){
                    var listArr = enteredVal.split('-');
                    var htmlList = "<ul>";

                    var i = 0;

                    do {
                        if(listArr[i].length > 0) {
                            htmlList = htmlList.concat("<li>");
                            htmlList = htmlList.concat(listArr[i]);
                            htmlList = htmlList.concat("</li>");
                        }
                        i++;
                    } while(i < listArr.length);
                    htmlList = htmlList.concat("</ul>");

                    //attempt 1: change value of newMe
                    //newMe.value = htmlList;
                    //attempt 2: change record
                    record = htmlList;
                }
                Ext.bind(newMe.updateElementRecord, newMe, [newMe.formPanel, record])
            }
        }
    };

    return Ext.create('Ext.form.field.TextArea', configuration);
}

如果文本之间存在-,则将正确构建列表,但不会保存该列表。通常,我会使用HtmlEditor,但在这种情况下,我将无法使用它,而必须使用TextArea解决。

不能保存操纵值的问题是什么?

0 个答案:

没有答案