我有以下jQuery:
var fn = {
Load: function () {
$(".myclass input.Submit").click(function (e) {
var _IsValid = fn.IsValid();
if (_IsValid == false) {
e.preventDefault();
}
//Popup displays message fine if "return false;" is
//called here but then obvIoUsly never posts back.
});
},IsValid: function () {
var _IsValid = true;
$.ajax({
url: "/myURL",type: 'POST',contentType: 'application/json; charset=utf-8',data: JSON.stringify({ Barcode: $barcode.val(),Email: $email.val() }),dataType: 'json',success: function (data) {
var array = eval(data);
if (array[0] == 0) {
_IsValid = false;
ShowPopup(array[1]);
}
},error: function (xhr,status,error) {
}
});
return _IsValid;
}
}
AJAX响应是200 OK,但成功函数没有运行.相反,它似乎正在运行错误功能.
该脚本作为ASP.NET ImageButton的单击事件侦听器运行.如果_IsValid == false,则调用e.preventDefault()以防止回发.
奇怪的是,如果我将return false添加到事件监听器函数的末尾,则此代码将运行success函数.
如何找出导致此错误的原因以便我可以解决?