【发布时间】:2014-04-28 15:39:05
【问题描述】:
在不刷新页面的情况下,我无法将 AJAX 表单转换为 POST 到我的 PHP 脚本。
我在 AJAX 请求之前和之后都添加了e.preventDefault(),但它似乎没有任何影响,这似乎很奇怪。
这是我的 javascript:
// AJAX form submit
$("form[name=signoutRequestForm]").on("submit", function(e){
var cval = confirm.val().toLowerCase().replace(" ", "");
if( cval !== "yes" ) {
alert("You must accept the borrowing policy.");
}else{
var formData = {
validForm: true,
name_txt: name.val(),
productName_sel: prodName.val(),
signoutDateStart_txt: startDate.val(),
signoutDateEnd_txt: returnDate.val(),
additionalNotes_txtarea: addNotes.val(),
disclaimer_txt: confirm.val(),
recaptcha_challenge_field: recap_challenge.val(),
recaptcha_response_field: recap_response.val(),
studentUse: studentUse.val()
};
$.ajax({
type: "POST",
ulr: confLocation,
data: formData,
done: function(data){
$(".signoutRequestForm").remove();
$(".signout-form-container").html( data );
}
});
}
e.preventDefault();
});
现在,当我点击提交时,页面似乎只是刷新,而没有实际提交表单。
【问题讨论】:
-
代替
.on("submit",..)试试.on("click",..) -
@AmitSoni 不起作用,这是一个表单而不是按钮。
-
您是否收到 javascript 错误?如果出现错误,javascript 将无法阻止表单被提交。你检查过你的控制台吗?
-
@PankajSharma 是对的,它应该是“成功”或最后链接的
.done() -
您确定要包含 jQuery 吗?如果是这样,您包括哪个版本?
标签: javascript jquery ajax forms