我有简单的表单(5个文本字段),其中一个我必须验证(检查它的值是否在商店列表中是唯一的)。所以我的代码如下:
{
xtype: 'textfield',
fieldLabel: 'Name',
itemId: 'BRW_NAME',
vtype: 'alphanum',
validator: function (tab) {
Ext.getStore('BrwStore').each(function(rec) {
if (rec.get('brw_nazwa') == tab) {
//debugger;
Ext.ComponentQuery.query('#BRW_NAME').markInvalid('DOUBLE NAME ERROR!');
return (false);
}
});
return (true);
}
但在我输入相同的值(与商店中相同)后,此字段保持有效。当我使用"调试器"我看到这个字段被标记为无效(字段周围的红框和过程返回false)但我只能在这一刻看到它。当我松开调试器控制时,字段变得正常(我的意思是没有红框)。
为什么呢? 怎么了?
答案 0 :(得分:0)
不知道为什么,但是当这个验证错误设置在现场时,每个"循环,像这样:
{
xtype: 'textfield',
fieldLabel: 'Name',
itemId: 'BRW_NAME',
vtype: 'alphanum',
validator: function (tab) {
var err = false;
Ext.getStore('BrwStore').each(function(rec) {
if (rec.get('brw_nazwa') == tab) err = true;
});
if (err) {
Ext.ComponentQuery.query('#BRW_NAME').markInvalid();
return 'DOUBLE NAME ERROR!';
}
return (true);
}
一切都很好。