我正在使用Ext.form.field.Tag组件。如果我以正确的格式复制粘贴一串值,则会选择所有值,一切都很完美。但是,如果值没有正确粘贴,即逗号之前和/或之后的空格,字符串末尾没有逗号等某些值不同步。
我面临的问题是如果字符串的格式不正确,我可以通过删除逗号之前/之后的空格来纠正它,但我从来没有机会这样做。
例如,如果粘贴的字符串是:
"1,2,3, 4, 5, 6, 7,8,9,10,"
只有逗号之前和之后没有空格的值才会与下拉列表同步。所以
1,2,3,8,9, and 10
将同步,但其余内容将被忽略。
任何人都有任何关于处理这个问题的最佳方法的建议吗?
我需要类似“beforechange”事件的内容,因为只有在同步这些值后才会触发“更改”,此时忽略的值已经丢失。
答案 0 :(得分:0)
您是否尝试过'焦点'活动?它应该在'change'事件之前触发。
答案 1 :(得分:0)
我发现change事件中的字段(this)包含一个名为“lastMutatedValue”的属性,它等于粘贴的字符串,正是我需要的。
change:function(fld_){
var str = fld_.getValue();
if(fld_.lastMutatedValue){
//concat current values with copy pasted values
str = str + "," + fld_.lastMutatedValue.replace(/\s*,\s*/g, ','); //removes any white spaces before/after commas
}
fld_.setValue(str);
}