0
간단한 양식 (5 개의 텍스트 필드)이 있으며 그 중 하나의 유효성 검사가 필요합니다 (값이 상점의 목록에서 고유한지 확인). 그래서 내 코드는 다음과 같습니다 :ExtJS 4 폼 유효성 검사
{
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를 반환 함) 표시되지만이 순간에만 볼 수 있습니다. 디버거 컨트롤이 느슨하면 필드가 정상이됩니다 (즉, 빨간색 프레임이 없음).
왜? 무엇이 잘못 되었나요?
{
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);
}
모든 것이 괜찮 :