У меня есть следующий 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
, но функция success
не запускается. Вместо этого кажется, что выполнять функцию error
.
Сценарий запускается как прослушиватель событий щелчка для ASP.NET ImageButton.Если _IsValid==false
, то e. preventDefault()
вызывается для предотвращения обратной передачи.
Странно то, что если я добавлю return false в конец моей функции прослушивания событий, этот код запускает функцию success
.
Как могу ли я узнать, что вызывает эту ошибку, чтобы решить ее?