я прочитал следующее сообщение о том, как выйти из яваскрипта функции:выхода из функции яваскрипта
How can I exit from a javascript function?
Я пытаюсь адаптировать пример моего кода, но я что-то не хватает/делать что-то не так.
У меня есть следующий код JQuery:
$('#main_submit_button').live('click', function(){
check_for_duplicate_rule().done(function(result) {
console.log("result from check for duplicate" + result);
if (result == 'true') {
$('#validation_error').html("A similar rule already exists");
return;
}
});
//}
console.log("i made it this far");
return false;
console.log($('#rule_form').serialize());
}
Когда я проверить с помощью повторяющихся данных, система правильно отображает ошибку, которая говорит: «Аналогичное правило уже существует», но он также отображает сообщение «Я сделал это так далеко» в консоли. Это НЕ отображает результаты команды formizeize(). Я ожидал, что код просто выйдет из обработчика .click даже после установки сообщения об ошибке.
Я попытался изменить, чтобы изменить оператор return на «return false», но это тоже не сработает. Можете ли вы сказать мне, что я делаю неправильно? В конечном счете, мне бы хотелось, чтобы эта процедура выполняла несколько проверок проверки на стороне клиента, прежде чем я отправлю данные на сервер. Итак, у меня будет несколько точек в функции, где мне нужно «вернуться» или выйти.
Благодаря
EDIT 1
Я изменил код, чтобы выглядеть следующим образом:
var bduplicate = false;
check_for_duplicate_rule().done(function(result) {
console.log("result from check for duplicate" + result);
if (result == 'true') {
$('#validation_error').html("A similar rule already exists");
bduplicate = true
return;
}
});
//}
if (bduplicate) {
return;
}
console.log("i made it this far");
Но он по-прежнему выводит сообщение "я сделал это настолько далеко". Я думаю, что проблема может быть связана с моей функцией check_for_duplicate_rule. ?? Это выглядит следующим образом:
function check_for_duplicate_rule() {
var parameters = {
num: $('#num').val(),
condition: $('#condition').val(),
cdidnumber: $('#cdidnumber').val()
}
return $.getJSON(
url = aURLdefinedsomewhere,
parameters,
function(data) {
//if (data=='true') {
//$('#validation_error').html("A similar rule already exists");
//}
}//end data
);//end getJSON
}
Что я вижу в консоли является то, что «результатом проверки истинного дубликата» сообщение печатается после «я сделал это настолько далеко», который, кажется, указывает что я проверяю результаты, которых у меня нет ...? Если это правда, я действительно не знаю, как это сделать.
Первый 'return' возвращается из' .done() 'функция , – tymeJV
tymeJV, это имеет смысл! Я попытался исправить код, но он все еще не работает. Пожалуйста, проверьте мои изменения. 1 –