ExtJs更改已创建输入的maskRe

时间:2015-12-28 09:02:04

标签: javascript extjs

是否可以更改已创建输入字段的maskRe? 如果是,怎么样?

{
  xtype: 'textfield',
  maskRe: /\d{0,5}/i
}

1 个答案:

答案 0 :(得分:0)

是的,你已经在做了。

但maskRe仅适用于新角色。来自文档:

  

一个输入掩码正则表达式,用于过滤不匹配的击键(正在键入的字符)。注意:它不会过滤输入中已有的字符。

这意味着maskRe不能用于一定的长度要求;你可以使用maxLength

如果您想动态更改它,则没有记录的方法可以这样做。在6.0.1中,根据代码,使用textbox.maskRe = newValue就足够了,因为filterKeys function如下所示:

filterKeys : function(e){
    /*
     * Current only FF will fire keypress events for special keys.
     * 
     * On European keyboards, the right alt key, Alt Gr, is used to type certain special characters.
     * JS detects a keypress of this as ctrlKey & altKey. As such, we check that alt isn't pressed
     * so we can still process these special characters.
     */
    if ((e.ctrlKey && !e.altKey) || e.isSpecialKey()) {
        return;
    }
    var charCode = String.fromCharCode(e.getCharCode());
    if (!this.maskRe.test(charCode)) {
        e.stopEvent();
    }
}