2011-11-08 2 views
8

onkeyup 또는 onfocusout 옵션을 사용하여 jquery 유효성 검사 플러그인을 가져 오려고합니다. 이러한 옵션을 추가하고 그 중 하나를 트리거 할 때마다 오류가 발생합니다. 양식을 제출하면 유효성 검사가 작동합니다.f.settings [g] .call은 유효성 확인을 제출하는 기능이 아닙니다.

나는 실제로 작업하고있는 양식을 게시 할 수는 없지만 정적/js/하위의 모든 js 디렉토리에로드하는 간단한 양식으로 유사한 문제를 만들었습니다.

나는 1.9.0

사람이 어떤 생각을 가지고 JQuery와 1.6.2 및 JQuery와 유효성 검사를 사용하고?

<html> 
<script type="text/javascript" src="static/js/jquery.js"></script> 
<script type="text/javascript" src="static/js/jquery.validate.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    var validator = $('#submitform').validate({ 
     rules: { 
      name: 'required', 
      phone: { 
       required: true, 
       minlength: 12 
      }, 
      team: { 
       required: true, 
       minlength: 1 
      }, 
      fax: { 
       required: true, 
       minlength: 12 
      } 
     }, 
     messages: { 
      name: 'Your name is required', 
      phone: 'Your phone number is required', 
      team: 'Your extension number is required', 
      fax: 'Your fax number is required' 
     }, 
     // the errorPlacement has to take the table layout into account 
     errorPlacement: function(error, element) { 
      if (element.is(":radio")) 
       error.appendTo(element.parent().next().next()); 
      else if (element.is(":checkbox")) 
       error.appendTo (element.next()); 
      else 
       error.appendTo(element.parent()); 
     }, 
     onfocusout: true, 
     // specifying a submitHandler prevents the default submit, good for the demo 
     submitHandler: function() { 
      alert("submitted!"); 
     }, 
     // set this class to error-labels to indicate valid fields 
     success: function(label) { 
      // set as text for IE 
      label.html(" ").addClass("checked"); 
     } 
    }); 
}); 
</script> 

<form id="submitform" action="."> 

<label for="name">Your Name:</label> 
<input id="ins_name" type="text" name="name" maxlength="40" /> 

<label for="phone">Phone:</label> 
<input name="phone" maxlength="14" type="text" id="phone" /> 

<label for="extension">Extension:</label> 
<input name="extension" maxlength="10" type="text" id="extension" /> 

<label for="fax">Fax:</label> 
<input name="fax" maxlength="14" type="text" id="fax" /> 

<input type="submit" value="Submit"> 
</form> 
+0

나는 onfocusout이 함수 여야한다고 생각할 것입니다. – AutoSponge

+0

문서에 따르면 이는 단지 선택 사항입니다. http://docs.jquery.com/Plugins/Validation/validate#toptions – grantk

+0

옵션은 구성 객체의 속성이며 그 값은 무엇이든 수 있습니다. 이 경우에는 이벤트 처리기 (jQuery에서 일반적으로 사용됨)이고 (대부분의 플러그인처럼) 잘 문서화되지 않았기 때문에 유형이 함수 여야한다고 추측합니다. – AutoSponge

답변

14

위에서 설명한대로 설명서에 결함이 있습니다. 실제로 유효성 검사중인 요소를 매개 변수로 허용하는 함수에 onfocusout 옵션을 설정해야합니다. 이 라인 onkeyup: true 다음이었다 내가 false

onkeyup: false 

로 변경되었지만 오류가 오기 시작하면 내가 아직 모르는

$("#form").validate({ 
    onfocusout: function(element) {$(element).valid()} 
}); 
1

내 경우 : 여기에 작업 코드 샘플입니다. :)

관련 문제