ExtJS表单字段 - 设置多个值

时间:2016-03-24 01:29:51

标签: extjs

我正在使用Ext.form.field.Tag组件。如果我以正确的格式复制粘贴一串值,则会选择所有值,一切都很完美。但是,如果值没有正确粘贴,即逗号之前和/或之后的空格,字符串末尾没有逗号等某些值不同步。

我面临的问题是如果字符串的格式不正确,我可以通过删除逗号之前/之后的空格来纠正它,但我从来没有机会这样做。

例如,如果粘贴的字符串是:

"1,2,3, 4, 5, 6, 7,8,9,10,"

只有逗号之前和之后没有空格的值才会与下拉列表同步。所以

1,2,3,8,9, and 10

将同步,但其余内容将被忽略。

任何人都有任何关于处理这个问题的最佳方法的建议吗?

我需要类似“beforechange”事件的内容,因为只有在同步这些值后才会触发“更改”,此时忽略的值已经丢失。

2 个答案:

答案 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);
}