Добрый день. Столкнулся со следующей проблемой:
Есть функция
function emailCheck(value) {
if (check_email_address(value)) { //проверка по регулярным выр-ям
$.getJSON("/ajax/check_email.php",{'email':value},function(json){
if (json.success) {
if ($("span.email").hasClass('bad')) {
$("span.email").removeClass('bad');
}
$("span.email").addClass('good');
return true; // это и надо вернуть. Пункт 1
}
else {
if ($("span.email").hasClass('good')) {
$("span.email").removeClass('good');
}
$("span.email").addClass('bad');
return false; // или это. Пункт 2
}
});
}
else {
if ($("span.email").hasClass('good')) {
$("span.email").removeClass('good');
}
$("span.email").addClass('bad');
return false;
}
}
В коментариях в коде я пометил пункт 1 и 2, эти значения должна возвращать функция emailCheck(). Но дело в том что отправка\прием json это внутренняя функция и пункт 1 и 2 возвращают значение из этой внутренней функции. Пробовал писать return непосредственно перед $.getJSON()... - тоже без результатно...
Для передачи общей картины скажу что дальше в коде есть ивент на сабмит формы, и в теле этого сабмита есть строка
if (!emailCheck($("input.input1[name=email]").val())) { return false; }
То есть если emailCheck() возвращает false то прерывается отправка формы.
UPD. Если ничего не получится то планирую завести просто глобальную переменную которую менять с помощью этой функции и далее проверять уже значение самой переменной.. но у меня три подобных независимых проверки, хотелось бы поэлегантнее...