Показать сообщение отдельно
  #4 (permalink)  
Старый 10.03.2009, 15:53
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Zeboton, еще раз - запрос асинхронный (99%). Это означает, что функция checkEmail запустила запрос и благополучно завершилась. Т.е. моментальная проверка if (checkEmail(...)) ничего не даст, поскольку еще данных для проверки нет - они еще не пришли с сервера. Когда они придут - не известно, но известно, что у нас есть функция для обработки этих данных - этот самый третий параметр (функция, callback), который Вы передаете в $.post(...).

А зачем Вам для проверки email'а отправлять запрос на сервер? Проверьте на клиенте. Тогда и можно сделать, то, что Вы хотите:

if (checkEmail($("#id_email").val())) {
  // ура!
} else {
  // email неверный
}


Сама же функция checkEmail, принимает один параметр - строку и проверяет её регулярным выражением (более-менее приемлемым для email).
__________________
Тонкости ECMAScript
Ответить с цитированием