5
<script id="demo1" type="text/javascript">

jQuery(document).ready(function () {
    var validator = jQuery("#login").validate({
        rules: {
            pwd: "required",
            log: {
                required: true,
                email: true,
            },
        },
        messages: {
            pwd: "Please enter password",
            log: {
                required: "Email is required",
                email: "Please enter a valid Email Address",
            }
        },
        errorPlacement: function (error, element) {
            if (element.is(":radio"))
                error.appendTo(element.parent().next().next());
            else if (element.is(":checkbox"))
                error.appendTo(element.parent().next("span#error"));
            else
                error.appendTo(element.parent().next("div#error"));
            //error.appendTo ('div#error').show().fadeOut(4500);
        },
        success: function (label) {
            // set &nbsp; as text for IE
            label.html("&nbsp;").addClass("checked");
        }
    });
});
</script>

フォームを検証するためのこのスクリプトがあります。このスクリプトはフォームでうまく動作します。すべてのフィールドが検証されたときに関数を実行したいです。入力が正しいことを意味します。成功内で関数を呼び出すと、単一の入力が検証済みですが、すべての入力が正しい後に呼び出したいのですが、助けてください。過去1時間とは異なる方法を試していますが、結果はありません..

4

4 に答える 4

0

カウンターを作る:

var successvalidations = 0;

あなたの成功関数に追加してください:

成功: 関数 (ラベル) { 成功した検証 ++; }

検証後、検証されたすべての要素の数を確認します。

if(validatedElementsCount === successfulValidations) {
    doSomething();
}
于 2012-07-05T13:07:44.983 に答える
0

validator.form() メソッドを使用してフォームを検証できます

var validator=$("#find_your_form").validate({onsubmit: false});
......................................
if(validator.form()){
  //Validate passed
  ohYeh();
} else {
  //Validate 
  ohCrap();
}
于 2012-07-05T13:08:23.073 に答える
0

私はかつて同様の問題を抱えていました。多分私のアプローチもあなたを助けることができます。

すべての入力は、検証時にvalidまたはクラスに追加されました。invalid

次に、入力をループして、すべてが有効かどうかを確認しました。

function allValid(inputs) {
  for(var x = 0; x < inputs.length; x++) {
    if(!$(inputs[x]).hasClass('valid')) {      
      return false;
    }
  }
  return true;
};

var myInputs = $('#MyForm input');

if(allValid(myInputs)) {
  // All inputs are valid!
}
于 2013-02-22T22:36:33.043 に答える