2016-07-28 1 views
0

아래와 같은 조건에 따라 단일 필드에 대해 다른 오류 메시지를 표시하려고합니다.jQuery 동일한 필드에 대한 조건부 오류 메시지 유효성 확인

jQuery(document).ready(function() { 
    //... 


    ..// 

    $("#aID").validate({ 
      rules: { 
       reason: "required", 
       aic: "required" 
       aAmt:{ 
        required: function (element) {   
        var err; 
        var new_balance = Math.round(100*beg_balance)/100 - Math.abs(Math.round(100*adjustAmount)/100); 
      if ((parseInt(aAmount) >= parseInt(a_limit_amount))) { 
       err = "123";       
       return true; 
      } 
      else if (new_balance) 
      { 

       err = "321"; 
       return true; 
      } 
      return false; 
        } 
       } 
      } 
      }, 
      messages: { 
       reason:"Please select a reason code.", 
       aic: "Please select a credit AIC.", 
       pwdOverride: err 
      }, 

    }); 

아래

messages: { 
    RoutingNumber: { 
    required:"Message1", 
    digits: "Message2", 
    rangelength: "Message 3" 
    } 
} 

과 같은 옵션이 있습니다 그러나 광산은 그것에게이 플러그인에서 검증 방법을 구축하지 않습니다. 달성 방법에 대한 도움이 필요하십니까? 당신이 aAmt 내 다른 루프를 보면 검증에 건설을 위해 내가 무엇을 의미

은 다음과 같습니다 rules를가에 맞지 않는, jQuery를 검증의 같은 검증 내장 : 현재와 같은 심각한 구문 문제가 List of built in validation methods

+0

* "하지만 내 것은 jquery에서 유효성을 검사하지 않았습니다"* ~ "광산"이란 무엇을 말합니까? jQuery Validate 플러그인을 설치하지 않으면 위의 코드를 사용할 수 없습니다. – Sparky

+0

@sparky 수행하고 싶은 유효성 검사를 업데이트했습니다. – JNPW

+0

* ""jquery에서 유효성을 검사하지 않은 것은 무엇입니까? * mean ?? [jQuery Validate plugin] (https://jqueryvalidation.org)이 설치되어 있습니까? – Sparky

답변

4

아래 내 의견에 나와 있습니다.

$("#aID").validate({ 
    rules: { 
     reason: "required", 
     aic: "required" // <- MISSING a comma here 
     aAmt: { 
      required: function(element) { 
       var err; 
       var new_balance = Math.round(100 * beg_balance)/100 - Math.abs(Math.round(100 * adjustAmount)/100); 
       if ((parseInt(aAmount) >= parseInt(a_limit_amount))) { 
        err = "123"; 
        return true; 
       } else if (new_balance) { 
        err = "321"; 
        return true; 
       } 
       return false; 
       } // <- REMOVE extra brace 
      } 
     } 
    }, 
    messages: { 
     reason: "Please select a reason code.", 
     aic: "Please select a credit AIC.", 
     pwdOverride: err // <- no such field defined in 'rules' 
    } 
}); 
  1. 당신은 바로 aic 규칙 뒤에 쉼표가 누락되었습니다.

  2. 조건부 기능에는 추가 가새가 있습니다.

  3. messages 내에서 pwdOverride이라는 필드를 참조하고 있지만 rules에 정의 된 필드가 없습니다. 유효성 검사 규칙이없는 필드에서 유효성 검사 오류 메시지를 어떻게 정의 할 수 있습니까?

  4. 사용자 지정 메시지에 대한 조건부 기능은 rules 개체가 아닌 messages 개체 내에 있어야합니다. rules은 규칙을 정의하기위한 것이며 messages은 메시지를 정의하기위한 것입니다.

업데이트 : jsfiddle.net/3of700am/

: 당신이 우리에게 양식의 HTML 태그를 표시하지 않은

$("#aID").validate({ 
    rules: { 
     reason: "required", 
     aic: "required", 
     aAmt: "required" 
    }, 
    messages: { 
     reason: "Please select a reason code.", 
     aic: "Please select a credit AIC.", 
     aAmt: { 
      required: function(element) { 
       var err = "this field is required"; // default message 
       var new_balance = Math.round(100 * beg_balance)/100 - Math.abs(Math.round(100 * adjustAmount)/100); 
       if ((parseInt(aAmount) >= parseInt(a_limit_amount))) { 
        err = "123"; 
       } else if (new_balance) { 
        err = "321"; 
       } 
       return err; // <- display the custom message 
      } 
     } 
    } 
}); 

때문에, 난 단지 일반적인 개념 증명 예를 제공 할 수 있습니다

참고 :

  • 자바 스크립트 콘솔은 많은 구문 오류를 알려주기 때문에주의를 기울여야합니다.
  • 올바른 형식으로 코드를 작성하여 읽고 읽고 문제를 해결하는 것이 더 쉽습니다. 형식이 지정되면 추가/빠진 괄호/중괄호를 쉽게 찾을 수 있습니다.
+0

고마워요. 메시지 섹션의 코드를 사용하면 도움이됩니다. 나는 필수 입력란이 아닌 위와 같은 조건을 적용하는 암호 이외의 다른 필드가 있습니까? 그것은 비록 최종 else 블록 액션이 호출되지 않을 때 false를 반환하더라도 조건에 적용됩니다. (오류 메시지가 반환되지 않는 경우) 페이지 동일한 양식을 사용합니다. pwd에 대한 내 코드가 업데이트되었습니다. – JNPW

+0

@JNPW 답변을받은 후에 원래 질문의 전체 내용을 바꾸지 마십시오. 기존 답변을 연결 해제하고 향후 독자를 돕지 않습니다. 새로운 질문이있는 경우 새로운 질문을 올리십시오. 감사. – Sparky