2012-02-28 4 views
1

jquery.validation.js가 선택 상자의 유효성을 검사하는 데 문제가 있습니다. 텍스트 입력을 처리하지만 select에 대한 오류 메시지를 표시하지 않습니다. 텍스트 입력에 대한 유효성 검사를 수행하면 제출됩니다. 아무도 내가 여기에서 놓친 것을 본다? 내가 사이트의 다른 곳에서 해결책을 놓친 경우 jQuery 유효성 검사 플러그인이 선택 상자의 유효성을 검사하지 않습니다.

(function($){ 
if($('form#consumerRegistration').length){ 
    $('input').placeholder(); 
    $('form#consumerRegistration').find('a').on('click', function(e){ 
     e.preventDefault(); 
     if($('form#consumerRegistration').valid()){ 
      $('form#consumerRegistration').submit(); 
     } else { 
      return false; 
     } 
    }); 
} 
})(jQuery); 

<form name="consumerRegistration" id="consumerRegistration" action="" method="post"> 
    <label for="name" class="baseline-10">Full Name</label> 
    <input type="text" name="name" id="name" class="required" placeholder="John Doe" min-length="2"/> 
    <label for="email" class="baseline-10">Email</label> 
    <input type="text" name="email" id="email" class="required email" placeholder="[email protected]"/> 
    <label for="company" class="baseline-10">Company</label> 
    <input type="text" name="company" id="company" placeholder="ie. Yahoo"/> 
    <select name="country" id="country" class="required" required="required"> 
     <option selected="" val="" disabled="disabled">Country</option> 
     <option val="United States">United States</option> 
     <option val="Canada">Canada</option> 
    </select> 
    <a href="javascript:document.void(1);" title="Register" class="cta"><span>Register</span></a> 

, 나는 내가 thouroughly 봤는데 맹세합니다. :)

플러그인은 http://bassistance.de/jquery-plugins/jquery-plugin-validation/입니다.

+0

글쎄, 나는 jquery.validation.js의 코드를 보지 않고 문제가 있는지 알 수 없습니다. 어쩌면 당신은 질문에 그것을 추가해야합니다. –

+0

죄송합니다. 플러그인 홈페이지에 대한 링크를 추가했습니다.하지만 1100 줄 과장 될 수 있으므로 코드를 여기에 포함시키지 않았습니다. – jayseeg

+0

정리를위한 감사 글렌]] – jayseeg

답변

2

좋아, 문제는 jquery를 올바르게 사용하고 있지 않다는 것입니다. 당신이해야 할 것은이 같은 더 :

첫째, 설치 document.ready에 대한 검증, 이렇게하지 않으면, 그것은 형태를 다른 방법으로 확인하지 않습니다

$('form#consumerRegistration').validate(...//options here 

을 다음으로, 단지

$('form#consumerRegistration').find('a').on('click', function(e){ 
    $('form#consumerRegistration').submit(); 
}); 

마지막으로, 그 이유는 당신이 제대로 처리되지 않는 선택은 당신이 지정하지 않은 것을 형태 (다음의 일을 할 것입니다 확인)를 제출하여 a 요소에 대한 클릭 이벤트를 만들 그것의 속성을 정확하게. 단순히 val이 올바른 옵션이 아닙니다. value입니다. 그러니 그냥 모든 옵션에 그 변경 : 여기

<option selected="" value="" disabled="disabled">Country</option> 
    <option value="United States">United States</option> 
    <option value="Canada">Canada</option> 

그것이 작동 : http://jsfiddle.net/ryleyb/TTpSB/

+0

나는 지금 당장 자신을 때려 눕히고있다. 나는 너무 오랫동안 감정을 상하게했고 잘못 명명 된 속성을 잡지 않았다. 이 문제를 해결해 주셔서 감사 드리며, 다른 해결 방법도 시도해 보겠습니다. – jayseeg

+0

^5. 나는 "발"문제에 대한 바보이지만 유효성 검사를 막아서 기쁘다. 올바른 속성으로 작동하기 때문에 원인이 있지만 플러그 인을 잘못 구현했다는 것을 결코 깨닫지 못했다. – jayseeg

+0

@ jayseeg Hah, 나는 모든 프로그래머가 한 번 그런 식으로 생각합니다. – Ryley

0

jQuery를 검증 플러그인을 확인하기 위해 빈으로 선택의 첫 번째 옵션이 필요합니다. 예 : 당신의 선택 상자는 다음과 같아야합니다

<select name="country" id="country" class="required"> 
     <option></option> 
     <option val="United States">United States</option> 
     <option val="Canada">Canada</option> 
</select> 
관련 문제