我無法理解驗證程序在窗體中的字段爲空時顯示成功消息的原因。我被引導認爲$ .post不應該運行,直到所有的字段都被驗證。我在這裏錯過簡單的東西嗎?如果有人能指出我的錯誤,我將不勝感激。我正在使用的腳本是:http://jqueryvalidation.org/。由於jQuery驗證程序如果未驗證,則調用成功
jQuery代碼
$(function() {
$.validator.setDefaults ({
errorClass: 'form_error',
errorElement: 'div'
});
$("#BA_boxform").validate({
rules: {
BA_customer: {
required: true
},
customerdept: {
required: true
},
customeraddress: {
required: true
},
BA_service: {
required: true
},
BA_box: {
required: true
},
BA_destdate: {
required: true
},
BA_authorised: {
required: true
}
},
messages: {
BA_customer: {
required: '<br />* required: You must select a customer'
},
customerdept: {
required: "<br />* required: You must select a department"
},
customeraddress: {
required: "<br />* required: You must select a customer address"
},
BA_service: {
required: "<br />* required: You must select a service level"
},
BA_box: {
required: "<br />* required: You must enter a box number for intake"
},
BA_destdate: {
required: "<br />* required: You must enter a destruction date"
},
BA_authorised: {
required: "<br />* required"
}
},
submitHandler: function() {
if ($("#BA_boxform").valid() === true) {
var data = $("#BA_boxform").serialize();
$.post('/domain/admin/requests/boxes/boxesadd.php', data, function() {
}, 'json');
} else
{
return;
}
},
success: function(msg) {
$("#BA_addbox").html("You have entered a box");
//$("#BA_boxform").get(0).reset();
}
});
});
您的期望是正確的。你不需要調用'.valid()',因爲它不應該到達那裏,除非它是有效的。你能演一個小提琴嗎? – Barmar
@Barmar在這裏你去http://jsfiddle.net/HsqgZ/1/忽略PHP調用,但你會看到問題。謝謝 – user1532468