2012-10-14 3 views
1

더 큰 jQuery 유효성 검사 형식의 일부로 일부 입력은 버튼 누르기에서만 유효성 검사가 필요합니다. 이는 기본 폼의 일부로서 검증하지만 난 호출하면됩니다 의미합니다 나는 규칙을 지정하는 방법으로 입력의 클래스를 사용하지 않으jQuery는 단일 요소 및 규칙으로 유효성 검사

<form class="validate"> 
    // ...... 
     validated form elements on submit 
    // ...... 

    <select multiple="multiple" id="itemList" size="5"><select> 
    <input type="text" id="newItem" name="newItem"/> 
    <button type="button" id="addItem">add</button> 

    // ...... 
     validated form elements on submit 
    // ...... 
    <button type="submit">Submit Form</button> 
</form> 

<script> 
    $(document).on("click", "#addItem", function(e){ 
     if($("form.validate").validate({}).element("#newItem")){ 
      //Code to add valid item to the list 
     } 
    }); 
</script> 

: 목록에 예를 입력 항목의 경우 $ ([form]). validate ({rules ..}) .lement ([element]) 형식의 유효성 검사는 무시됩니다.

이 작업을 수행하는 유일한 방법은 유효성 검사 및 규칙 ("제거", 규칙) 전에 규칙 ("추가", 규칙)을 사용하는 것입니다. 난 당신이 검사를하는 이유 그랜드 :

+3

될 것이라고 잘못된거야 어디 사람이 말해 줄 수 그래서 만약

<script> $(document).on("click", "#addItem", function(e){ $("#newItem").rules("add", { required: true, minlength: 2, messages: { required: "Required input", minlength: jQuery.format("Please, at least {0} characters are necessary") } }); $("form.validate").validate().element("#newItem"); $("#newItem").rules("remove"); }); </script> 

이 그러나 매우 우아 보인다 경우 ($ ("form.validate") 폼이 유효한지 체크하기를 원하거나 $ ("form.validate")를 사용하지 않으려면 .validate ("# newItem")) valid()이 메소드는 true 또는 false를 반환하고, 하나는 validate 객체를 리턴한다. –

+0

@ prog-mania이 시점에서 양식 전체가 유효한지 알 필요가 없습니다. 양식의 다른 요소를 채우는 데 사용되는 단일 입력의 유효성을 검사하기 만하면됩니다. – Carlos

답변

0
<script> 
    $(document).on("click", "#addItem", function(e){ 
     var _validateSingleField=$('form.validate').validate().element('#newItem'); 

     if(_validateSingleField){ 
      //Code to add valid item to the list 
     } 
    }); 
</script> 
관련 문제