2017-04-11 5 views
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); 
     } 

모든 것이 괜찮 :

답변

0

이 유효성 검사 오류가이 같은 outsite "각"루프를 설정 한 경우 이유를 알고 있지만하지 마십시오.