2012-12-09 13 views
5

jQuery検証プラグインで非常に奇妙な問題が発生し、事前に入力して変更したselectを検証しません。あなたがここにコードを見ることができますjQueryバリデーションプラグインでプレフィックスが選択されていない

http://jsfiddle.net/VwRJ8/1/

コードは、次の行でalert()を発射することはありません:

$('#edit_loc_save').click(function() { 
    var foo = $('#add_new_loc_form').valid(); 
    alert(foo); 
}); 
+0

「選択」ボックスは、送信時に検証されますが、最初は変更されていません。また、 'select'の' name'値を置くべきです。 – 3dgoo

+0

私はもっと具体的だったはずです。送信時には検証されません。 – RHPT

+0

javascriptにエラーがあり、validate関数が呼び出されないことがあります。あなたのサンプルコードは送信時に正常に動作します。ここにデモがあります:http://jsfiddle.net/bPcr8/5/。エラーがないかどうかを確認するには、エラーコンソールを確認してください。それ以外の場合は、問題のライブバージョンを全員に共有できますか? – 3dgoo

答えて

5

選択が有効な値が変更されるたびにあるかどうかをチェックすることができます:

Javascriptを

$('#myform').validate(); 
$('#myselectbox').on('change', function() { 
    $(this).valid(); 
}); 
ここで

Demo

編集1

が正しく動作する検証機能を妨げている、あなたのjavascriptのエラーを、引き起こしているものです。

new_loc_zip: { 
    required: true, 
    postalcode: true // This is not a correct setting in jquery validate 
}, 

削除した場合postalcode: true行、validateが正しく呼び出します。

Demo

+0

郵便番号のカスタム妥当性検査規則が含まれています:\それでも問題が発生するでしょうか? – RHPT

+0

http://jsfiddle.net/VwRJ8/6/のバリデーションルールに問題はないようです。Selectが正しく検証されています。 – 3dgoo

+0

実際のコードでは動作しません(会社のネットワークの中にありますので、表示できません)。私は、別々のバリデーションルールを持つ複数のフォームを持っています。それが問題なのだろうかと思う。 – RHPT

1

http://jsfiddle.net/YRAga/2/

$('#myform').validate({ 
    rules: { 
     myselectbox: { 
      required: true 
     } 
    } 
}); 

$("#myselectbox").change(function() { 
    $("#myform").submit(); 
});​ 
1

オプションを変更しながら検証を行いたい場合は、選択オプションの変更イベントを処理し、プログラム的

検証をトリガーしてみてください

このような試してみてください

$(document).ready(function() { 
     $('#myselectbox').change(function() { 
       $('#myform').validate({ 
          rules: { 
           myselectbox: {required: true } 
          } 
          }).form(); 
         }); 
        });​ 

参照:here

+0

validate()を複数回呼び出すことはできません! –

関連する問題