我如何检测jQueryValidation何时完成,并根据该事件调用一些东西

How can I detect when jQuery Validation is done, and call something based on that event?

本文关键字:事件 调用 何检测 检测 何时完 jQueryValidation      更新时间:2023-09-26

我是jQuery的新手。

使用jQuery验证插件&cufon同时也让我很难过。

基本上,我想在jQueryValidation完成它必须做的事情后检测事件,并在它之后直接调用Cufon.refresh()。

$('#commentForm').validate({
    rules: {
        password: {
            required: true,
            minlength: 8,
            maxlength: 8,
            number: true
        },
    }
});

当表单无效时,我们需要<label class="error"> SOME TEXT </label>

一旦创建了它,我想在jQueryValidation创建的标签上使用Cufon.refresh()。如何检测jQuery验证何时完成,并根据该事件调用某些内容

非常感谢您的帮助。当做Piotr

感谢@Ariel-如果有"成功",也必须有"不成功",所以…

工作代码:

$('#commentForm').validate({
    rules: {
        password: {
            required: true,
            minlength: 8,
            maxlength: 8,
            number: true
        }
    },
    showErrors: function(errorMap, errorList) {
        this.defaultShowErrors();
        Cufon.refresh();
        //alert('not valid!')
    },
    success: function() {
        //alert('valid!')
    }
});

再次感谢你的想法!

使用success选项:

$('#commentForm').validate({
    rules: {
        password: {
            required: true,
            minlength: 8,
            maxlength: 8,
            number: true
        },
    }
    success: function() { .... }
});

请注意,密码对象的右大括号后面有一个额外的逗号。这将在IE中产生错误。

 <script src="js/validate/jquery-1.11.1.min.js"></script>
 <script src="js/validate/jquery.validate.min.js"></script>
 <script src="js/validate/additional-methods.min.js"></script>
<script>
    jQuery.validator.setDefaults({
        success:  "valid"
    });
    var form = $("#myform");
    form.validate({
        rules: {
           name: {required: true, minlength: 2},
            lastname: {required: true, minlength: 2}
        }
    });
    $("#button").click(function() {
        if(form.valid() == true ) { // here you check if validation returned true or false 
            $("body").addClass("loading");
        }
    })
</script>
submitHandler: { function(){ bla bla }}

这将允许您在验证完成后执行代码。不过,您需要放置一个提交表单片段,因为它替换了默认的处理程序。

编辑:

    // specifying a submitHandler prevents the default submit 
    submitHandler: function() { 
        alert("submitted!"); 
    }, 
    // set this class to error-labels to indicate valid fields 
    success: function(label) { 
        // set   as text for IE 
        label.html(" ").addClass("checked"); 
    } 

你可以用任何一个来做你想做的事。submitHandler允许您停止提交并执行代码(您可以在提交前使用它来执行代码),或者在提交后成功执行代码。

将其放入errorPlacement选项中。

errorPlacement: function(error, element) {
  error.appendTo( element.parent() );
  yourCodeHere();
}
$(document).ready(function() {  
    $('#commentForm').submit(function(){
        var validationResponse = $('#commentForm').valid();
        if(validationResponse) {
            // when true, your logic
        } else {
            // when false, your logic
            return false;
        }
    });
    $("#commentForm" ).validate({
        rules: {
            "first_name": {
                required: true
            }
        },
        messages: {
            "first_name": {
                required: "First Name can not be empty"
            }
        }
    });
});