2011-07-21 3 views
0

私はカスタムバリデータメソッドのターゲットであるselectを持っています。要素が変更されたときにjQueryのカスタムバリデータメソッドが呼び出される

バリ:

var validator = $("#myform").validate({ 
     rules : { 
      source: "source_selected", 
     }, 
     messages : { 
     }, 
     errorLabelContainer: $("#error_container ul"), 
     errorContainer: $("#error_container"), 
     wrapper : "li"  
    }); 

カスタム検証方法:

$.validator.addMethod("source_selected", function(value, element) { 
     var source_id = $(element).selectedValues(); 
     if(source_id == 0) { 
      return false; 
     } 

     return true; 
    }, "Please a select a source to Copy subscriptions from."); 

の選択:私はsource_selected関数が呼び出さ選択でオプションを変更

<select name="source" id="source"> 
    <option value="0">-- Choose --</option> 
    <? foreach($managers as $id => $name) { ?> 
    <option value="<?=$id?>"><?=$name?></option> 
    <? } ?> 
</select> 

毎回。そこにアラートを置くと、選択ボックス(.blurに似ています)をクリックするたびにトリガーが発生します。送信ボタンが呼び出されたときにのみ呼び出されるようにします。任意の考えが大幅に高く評価されている

$("#submit_button").click(function() { 
     var valid = validator.form(); 
     if (valid) { 
      document.myform.submit(); 
     } 
    }); 

クリックイベントを提出します。

答えて

0

あなたが役に立たないように見えるバリデーターとして実行する代わりに、onSubmitで検証関数を呼び出し、その戻り値をチェックしてください。

+0

これは悪い考えではありません。私はまだこのパターンが全面的に使用されているので、なぜこれが失敗しているのか不思議です。私はこのように検証する全体として私のサイト上に約10のフォームを持っており、これは面白い動作している唯一のものです。 – akronymn

関連する問題