【问题标题】:Validator function getting fired twice in textfield验证器函数在文本字段中被触发两次
【发布时间】:2012-06-17 16:46:18
【问题描述】:

以下代码使用 ExtJs 中文本字段的验证器配置:

Ext.onReady(function(){
    Ext.create('Ext.form.Panel', {
        title: 'Simple Form',
        width: 350,
        url: 'save-form.php',
        layout: 'anchor',
        defaults: {
            anchor: '100%'
        },
        defaultType: 'textfield',
        items: [{
            fieldLabel: 'First Name',
            validateOnBlur:true,//calling validator on blur
            validateOnChange:false,//not calling validator on change
            validator:function(){
                console.log('in validator');//printing to console whenever validator is called
                return true;
            }
        }],
        renderTo: Ext.getBody()
    });
});

在代码中,validateOnBlur 设置为 true,而 validateOnChange 设置为 false。

问题是当用户第一次聚焦该字段并模糊时,验证器函数会被触发两次,如所附屏幕截图所示。

如果用户再次聚焦该字段并模糊,则验证器只会被触发一次,并且对于所有后续此类操作都是如此。

但第一次,当用户聚焦字段并模糊(通过鼠标单击或 Tab 退出)时,验证器函数会被触发两次。

谁能指导一下这背后的可能原因以及如何阻止这种情况,或者这是 ExtJs 4.1 版中的错误?

提前致谢

【问题讨论】:

  • 它也发生在版本:6.0.0.640 构建日期:2015-06-28

标签: forms validation extjs textfield extjs4.1


【解决方案1】:

我认为这将解决您的问题...模糊的工作方式不同..您可以使用模糊而不是更改,看看会发生什么以及您想要什么

items: [{
    fieldLabel: 'First Name',
    validateOnBlur: true, 
    listeners: {
        change: function (){
            console.log('in validator');
            return true;
        }
    }
}]

【讨论】:

    猜你喜欢
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多