簡體   English   中英

jQuery單擊覆蓋jQuery表單驗證器

[英]jQuery click overiding jQuery Form Validator

我正在使用jQuery表單驗證器插件來驗證表單,也正在使用jQuery click通過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”)。click函數中將驗證器作為函數調用,而不是在document.Ready中調用驗證器。 確實需要在document.Ready中調用它。

您在click事件處理程序中返回false,因此不會為click事件執行更多代碼,包括驗證。 (從jquery事件處理程序返回false會停止傳播並取消默認行為,請參閱此問題

您需要在點擊處理程序上手動驗證表單,然后再提交表單:

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

    //your current code posting the form using ajax

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM