2012-02-28 14 views
1

jquery.validation.jsで選択ボックスを検証するのに問題があります。テキスト入力を処理していますが、選択のエラーメッセージは表示されません。テキスト入力の検証を完了すると、それが送信されます。誰かが私がここで行方不明を見ますか?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> 

(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); 

私はサイトのどこかのソリューションを逃した場合、私は私が見てきたthouroughly誓います。 :)

プラグインはhttp://bassistance.de/jquery-plugins/jquery-plugin-validation/です。

+0

まあ、私はjquery.validation.jsからコードを見ずに間違っているものを言うことができません。だから多分あなたの質問に追加する必要があります。 –

+0

申し訳ありませんが、私はプラグインのホームページへのリンクを追加しましたが、ここではコードを含めませんでした。 – jayseeg

+0

きれいにしてくれてありがとうグレン;] – jayseeg

答えて

2

OK、実際にjqueryを正しく使用していないという問題があります。

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

:あなたはこれを行わない場合、それは、フォームに他の方法を検証しません、document.ready上

まず、セットアップの検証:何をする必要があるより、このようなものです次に、

$('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。私は "val"問題の馬鹿ですが、バリデーションができないのはうれしいです。正しい属性で動作するためですが、プラグインを誤って実装していることに気付かなかったでしょう。 – 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> 
関連する問題