Я использую вызов ajax для проверки некоторой проверки, а затем отправки формы обычно с помощью html. В моем аякс-звонкеКак разорвать выполнение и отобразить ошибку внутри успеха ajax?
function checkId() {
var str = $("#formObj").serialize();
$.ajax({
type : "post",
data : str,
url : "checkForId.mt",
async : false,
success : function(txt) {
if (txt == "pass") {
return "true";
} else if (txt == "same") {
$("#errorMsgIdSame").removeClass("hidden");
return "false";
}
},
error : function() {
alert("Error");
}
});
}
Если элемент управления переходит на «проход», выполнение должно продолжаться. Если он переходит к «тому же», выполнение должно прекратиться. Я называю этот метод ajax другим методом.
function validateForm() {
var isValid = true;
isValid = checkId();
if (!isValid) {
$("#errorMsg").removeClass("hidden");
}
return isValid;
}
Эта функция validatioForm вызывается при нажатии кнопки. Теперь работает ajax-код, но метод validateForm не возвращает метод ajax.
Нужно руководствоваться тем, как выполнить это, чтобы захватить возврат из метода ajax и как вернуться из метода ajax.
функция validateForm() { вар IsValid = истина ; isValid = checkId(); <<<<< --------------- if (! IsValid) { $ ("# errorMsg"). RemoveClass ("hidden"); } возвращение isValid; } Я не получаю никакого значения в отмеченной выше строке. Если я напечатаю его в alert(), я получаю undefined. checkId() ничего не возвращает при вызове. Но выполнение выполняется в checkId(). – romhail
@romhail Можете ли вы поставить 'console.log (txt)', в начале функции 'success', и проверить, какой результат вы получаете? – sabof
возвращается «undefined» – romhail