我使用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解决。
不能保存操纵值的问题是什么?