我有一个非常复杂的帖子,使用 jquery 验证和一个 AJAX 帖子,它从服务器获取 JSON 响应并将其放入 jqGrid 中......但似乎我的 onsuccess 在任何时候都不会被调用......
$(document).ready(function () {
$("#formSearchByMRN").validate({
rules: {
MRN: { required: true, minLength: 6 }
},
messages: {
MRN: 'Please Enter a Valid MRN'
},
submmitHandler: function (form) {
e.preventDefault();
animateLoad();
debugger;
var theURL = form.action;
var type = form.methd;
var data = $(this).serialize();
$.ajax({
url: theURL,
type: type,
data: data,
dataType: "json",
success: function (result) {
debugger;
var data = result;
if (data.split(':')[0] == "Empty record") {
$("#list").unblock();
$('#resultDiv').html('<b><p style="color: #ff00ff">' + data + '</p></b>');
setTimeout(function () {
$('#resultDiv').html("");
}, 10000);
}
else {
binddata(data);
}
}
});
return false;
}
});
});
看来我永远不会进入submmitHandler。事件虽然我设法访问我的服务器端函数并且它确实返回,但它会提示我的 UI 保存一个包含 JSON 结果的文件......不好。
我要在我的 AJAX 以错误的方式发布之前验证我的表单吗?有人对验证 AJAX 帖子的最佳实践有什么建议吗?
更新... MARK R. 这就是我尝试的。好像我从来没有进入成功功能......我怀疑我并不是真的通过 ajax 发布,而是在做一个完整的帖子。我不明白为什么。
$('#submitMRN').click(function () {
$("#formSearchByMRN").validate({
rules: {
MRN: { required: true, minLength: 6 }
},
messages: {
MRN: 'Please Enter a Valid MRN'
}
});
if ($('#submitMRN').valid()) {
$("#list").block({ message: '<img src="../../Images/ajax-loader.gif" />' });
$.ajax({
url: $('#submitMRN').action,
type: $('#submitMRN').method,
data: $('#submitMRN').serialize(),
dataType: "json",
success: function (result) {
debugger;
var data = result;
if (data.split(':')[0] == "Empty record") {
$("#list").unblock();
$('#resultDiv').html('<b><p style="color: #ff00ff">' + data + '</p></b>');
setTimeout(function () {
$('#resultDiv').html("");
}, 10000);
}
else {
binddata(data);
}
}
});
}
});