如何在extjs中的文本字段regex中粘贴一些文本后验证文本字段的值?

时间:2012-02-10 04:56:47

标签: extjs

在我的应用程序中,只有正则表达式的文本字段:/ [A-Z0-9 _] /应该被允许。 当我们使用下面粘贴的代码从键盘输入值时,它的工作正常。 问题是当我粘贴时,使用ctrl + v和rightclick paste接受除正则表达式之外的某些值。 注意我禁用右键单击和键盘上的ctrl + v事件,这对我的问题不是很好的解决方案请帮我解决这个问题.. 请告诉我如何在粘贴一些文本后验证文本字段的值。

          Mycode: { 
                    xtype: 'textfield',
                    flex: 1,
                    allowBlank: false,
                    maskRe: /[A-Z0-9_]/,
                    maxLength: 50,
                    regex: /[A-Z0-9_]/,
                    ref: '../refField',
                    enableKeyEvents:true,
                    listeners: {
                        keydown: function(field, e){
                            if((e.getKey() ==86) && e.ctrlKey){
                                e.stopEvent();

                            }
                        }
                    }
                }

此致 拉吉

1 个答案:

答案 0 :(得分:3)

您可以尝试在keyup事件上调用validate方法,如下所示:

http://www.sencha.com/forum/showthread.php?27147-Trying-to-get-extjs-to-react-to-text-changing-on-a-text-field

但正如他们所说,它并不能保证这适用于所有浏览器。在我看来,100%解决方案是在模糊事件中调用字段上的validate()。

类似的东西:

combo.on('blur', funciton(field){
    !if(field.isValid()){
         //do what you need, for example clean the value in the field
    }
})