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