2011-07-27 9 views
0

jquery에서 내 사용자 정의 규칙이 작동하지 않는 이유를 알 수 없습니다. 모두가 텍스트에서 부분 문자열을 찾고, 필요한 경우 DOESNT가 나타나면 필요하며 그렇지 않으면 필요하지 않습니다. jquery validate 라이브러리를 사용하고 있습니다. 나는 그 간단한 것을 희망한다. .. 도와주세요!jquery 유효성 검사 - 사용자 정의 규칙 - 의존성 콜백

jQuery.noConflict(); 
(function($) { 
$(function() { 
    $("#frmUpdateCC").validate({ 
     errorContainer: "#updateProfileCC", 
     errorPlacement: function(error, element) {}, 
     rules: { 
      txtCardNo1: { 
       required: true, 
       creditcard: function() { 
        var str = $('#txtCardNo1').val(); 
     str = (str.indexOf("xxxxxx")); 
     return (str != 6); 
       } 
      } 
      cboMonth1: "required", 
      cboCard1: "required", 

     } 
    }); 
}); 
})(jQuery); 

필자!의 == 6을 사용하여 시도,! = '6', 나는 당신이 당신의 콜백 함수가 "필요한"속성에 할당 할 생각

답변

2

글쎄 str.indexOf("xxxxxx")str 문자열에서 "xxxxxx"의 시작 위치를 반환합니다. str'xxxxxx' 포함 된 경우 'xxxxxx' 6. 당신은 아마 str.length을 테스트하려고 하셨나요 위치로 시작하는 경우

그래서, 당신의 문은 참으로 평가할 것인가?

그렇지 않으면, 왜 간단하지 :

str = (str.indexOf("xxxxxx")); 
    return (str === -1); 
+0

나는 그것을 시도 할 것이다 ... 기본적으로 나는 거짓으로 평가할 진술이 필요하다. 그 진술이 (제 6 위치 또는 임의의 위치에) 존재한다면 ... 나는 -1을 시도했지만 다른 것을 주겠다. 가기. – Ortal

+0

이 필요합니다. 문자열이 발견되지 않으면 indexOf는 -1과 같습니다. 그래서 ..., str === -1은 true를 반환합니다. "xxxxxx"가 발견되면 (자), indexOf는 -1보다 커지기 때문에, str === -1는 false를 돌려줍니다. – ProtectedVoid

+0

좋아요, 필자, 도와 주셔서 감사합니다. – Ortal

0

그 다른 변화가 아닌 "크레딧 카드 "속성 :

required: function() { var str = .... } 

현재 하드 코딩 된 필수 속성이 있습니다.

+0

아니요 신용 카드 정보 만 확인하면됩니다. 해당 X가없는 경우입니다. 항상 필요합니다. – Ortal

0

하는 당신은 내가 만 같은 숫자 형식을 지원하는 규칙 신용 카드를 생각이

creditcard: function() { 
        var str = $('#txtCardNo1').val(); 
     str = (str.indexOf("xxxxxx")); 
     if (str > -1) {                 
          return true; 
         } 
         else {         
          return false; 
         } 
       } 

처럼해야 할 NNN-nnn-이고 nnn. 그래서 나는 당신이 필요에 따라 다른 규칙을 추가해야한다고 생각한다. 나는 사용자 정의 규칙을 의미한다.

관련 문제