我有一个无论我尝试什么都不会运行的 ajax 提交。直到我找到一个将提交包含在$(function () {});
调用中的教程。然后我将我的 .submit 包装在一个函数调用中,它似乎奏效了。令我难以置信的是,我还有其他 .submit ajax 函数调用,它们在没有被包装在函数中的情况下也能正常工作。我想知道我是否在这里遗漏了我不理解的 jQuery 细微差别?
为了更充分地说明我的意思,这是我将它包装在一个函数之前和之后的函数......
前...
$("#FormPutMsg1").submit(function (e) {
debugger;
e.preventDefault();
//animateSpinner();
var theURL = this.action;
var type = "POST";//this.methd;
var data = $(this).serialize();
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
dataType: "json",
success: function (result) {
debugger;
var data = result;
if (data.split(':')[0] == "Error") {
//$("#list").unblock();
$('#resultDiv').html('<b><p style="color: #ff00ff">' + data + '</p></b>');
setTimeout(function () {
$('#resultDiv').html("");
}, 10000);
}
else {
binddata(data);
}
}
});
return false;
});
之后(这个工作)......
$(function () {
$("#FormPutMsg1").submit(function (e) {
debugger;
e.preventDefault();
//animateSpinner();
var theURL = this.action;
var type = "POST";//this.methd;
var data = $(this).serialize();
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
dataType: "json",
success: function (result) {
debugger;
var data = result;
if (data.split(':')[0] == "Error") {
//$("#list").unblock();
$('#resultDiv').html('<b><p style="color: #ff00ff">' + data + '</p></b>');
setTimeout(function () {
$('#resultDiv').html("");
}, 10000);
}
else {
binddata(data);
}
}
});
return false;
});
});
在我将我的函数包装在一个函数中之前,常规提交功能已被使用(因为我认为 e.preventDefault 从未被调用过)。先生们(和女士们)我错过了什么吗?