【发布时间】: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