我有一個表單,我使用jQuery驗證來驗證輸入是完整的。但是,發生的情況是驗證程序正在顯示消息,但它也正在對boxadd.php進行Ajax調用。我的印象是這個ajax調用只是在成功驗證後才做出的。當輸入沒有完成時,爲什麼它會達到Ajax事件?由於在驗證輸入之前驗證顯示成功
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"
}
}
});
$('#BA_boxform').on('submit', function() {
var formdata = $('#BA_boxform').serialize() + '&submit=' + $(this).val();
//alert(formdata);
$.ajax({
type: "POST",
url: "/domain/admin/requests/boxes/boxesadd.php",
data: formdata,
dataType: 'json',
success: function (msg) {
//alert(msg);
if (typeof msg.boxerrortext !== "undefined" && msg.boxerrortext == "You must enter a box for intake") {
$("#BA_addbox").html(msg.boxerrortext);
} else {
$("#BA_addbox").html("You have successfully added box(es) " + '<span style="font-weight: bold;color:black;">' + msg.box + '</span>' + ' to the archive.' + '<br />' + 'You may now close this window or input more boxes.');
$("#BA_boxform").get(0).reset();
}
//$("#confirm_department").hide();
/*
var $dialog = $('<div id="dialog"></div>')
.html('Your intake was successfully submitted and will be viewable in the reporting area.<br /><br />Thank you.');
$dialog.dialog({
autoOpen: true,
modal: true,
title: 'Box intake submission successfull',
width: 400,
height: 200,
draggable: false,
resizable: false,
buttons: {
Close: function() {
$(this).dialog("close");
}
}
});
*/
//alert(msg);
//console.log(msg);
//$("#BA_addbox").html(msg.box);
//$("#formImage .col_1 li").show();
//$("#BA_boxform").get(0).reset();
//$("#boxaddform").hide();
}
});
return false;
});
});
我不是100%確定,但是您是否必須致電驗證以確定它是否有效? – Liam
@Liam我跟着YouTube的教程設置驗證和我的理解,有效不是強制性的,但我會研究它。謝謝 – user1532468