我有一个简单的表单(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),但我只能在这一刻看到它。当我放松调试器控制时,字段就变得正常了(我指的是没有红色框架)。
为什么?怎么了?
发布于 2017-04-12 10:41:52
不知道为什么,但是当这个验证错误被设置为outsite“每个”循环时,如下所示:
{
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);
}一切都很好。
https://stackoverflow.com/questions/43346485
复制相似问题