jQuery单击隐藏jQuery表单验证程序

jQuery单击隐藏jQuery表单验证程序,jquery,validation,Jquery,Validation,我正在使用jQuery表单验证插件验证表单,并使用jQuery单击通过AJAX提交表单。这两种方法各自都能很好地工作,但当我同时使用这两种方法时,单击会覆盖验证,而表单不会验证 我们非常感谢您对如何一起使用这些工具的任何帮助 下面是代码,验证尚未完成,但确实有效 $(document).ready(function() { $("#payment_details").validate({ rules: { customerID: {

我正在使用jQuery表单验证插件验证表单,并使用jQuery单击通过AJAX提交表单。这两种方法各自都能很好地工作,但当我同时使用这两种方法时,单击会覆盖验证,而表单不会验证

我们非常感谢您对如何一起使用这些工具的任何帮助

下面是代码,验证尚未完成,但确实有效

$(document).ready(function() {

    $("#payment_details").validate({
        rules: {
            customerID: {
                required: true
            },
            amount: {
                required: true
            }
        }, //end rules
        messages: {} //end messages
    })

    $("#createPayment").click(function() {

        //alert("in function");
        var customerID = $("#customerID").val();
        var amount = $("#amount").val();
        var paymentType = $("#payment_type").val();
        var paymentDate = $("#payment_date").val();
        var paymentMethod = $("#payment_method").val();
        if (paymentMethod == "Cheque") {
            var pbRef = $("#pb_ref").val();
        } else {
            var pbRef = "empty"
        }
        var staffMember = $("#staff_member").val();

        // Returns successful data submission message when the entered information is stored in           database.
        var dataString = 'customerID=' + customerID + '&amount=' + amount + '&paymentType=' + paymentType + '&paymentDate=' +
            paymentDate + '&paymentMethod=' + paymentMethod + '&pbRef=' + pbRef + '&staffMember=' + staffMember;

        alert(dataString);


        //AJAX code to submit form.
        $.ajax({
            type: "POST",
            url: "createPayment.php",
            data: dataString,
            cache: false,
            success: function(result) {
                var paymentID = result;
                alert(paymentID);
            }
        });

        return false;
    });
}); 

尝试将验证程序作为$(“#createPayment”)中的函数调用。单击函数而不是在document.Ready中调用验证程序。确实需要在document.Ready中调用它。

在单击事件处理程序中返回false,因此不会对单击事件执行进一步的代码,包括验证。(从jquery事件处理程序返回false将停止传播并取消默认行为,请参阅)

提交表单之前,您需要在单击处理程序上手动验证表单:

$("#createPayment").click(function(){
    var isValid = $('#payment_details').validate().form();
    if(!isValid) return false;

    //your current code posting the form using ajax

});

也许是一些代码?请让我们进行故障排除。preventDefault将停止单击行为。。嗨,丹尼尔,当我尝试这个时,它提交了表单,然后开始验证!您是否已将验证表单的代码放在单击处理程序的开头?
isValid
的值是多少?