Сделаем еще один небольшой шаг вперед, связанный с валидацией нашей формы. Для поля e-mail мы можем не просто установить проверку пустого ввода, но и задать необходимое форматирование. Указанное решение было подробно описано Стивом Рейнолдсом (Steve Reynolds) в статье Validation With jQuery.
Пример Стива очень интересен и стоит тщательного изучения. Стив использует jQuery функцию keyup для проверки ввода e-mail по регулярному выражению в режиме реального времени.
Для начала мы добавим функцию isValidEmailAddress, написанную Стивом, в конец нашего скрипта:
... function isValidEmailAddress(emailAddress) { var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\ w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w- ]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0- 9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0- 9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); return pattern.test(emailAddress); }//is valid e-mail ...
Давайте более внимательно изучим существующий скрипт. После проверки поля на пустой ввод (val().length == 0) нам понадобится установить дополнительную проверку того, что это поле не является полем e-mail.
С помощью Firefox и Firebug я определил, что поле e-mail обладает классом .fldemail.
Теперь осталось лишь добавить дополнительную инструкцию else if для проверки e-mail. Обновленный скрипт будет выглядеть следующим образом:
... jQuery(".cform :input").blur(function(){ if (jQuery(this).val() != "Submit") { if (jQuery(this).val().length == 0) { jQuery(this).after('<span class="wrong"> ! </span>'); /* Проверка на наличие класса fldemail*/ }else if(jQuery(this).hasClass("fldemail") == true){ var email = jQuery(this).val(); /*Запуск функции, которая возвращает true или false*/ if(isValidEmailAddress(email)){ //Если поле заполнено верно jQuery(this).after( '<span class="correct"> thanks. </span>'); }else{ //Если поле заполнено неверно jQuery(this).after('<span class="wrong"> ! </span>'); }//if...else //end email check }else{ /*Остальные поля заполнены верно*/ jQuery(this).after('<span class="correct"> thanks. </span>'); }//end if no length }//end if...else !submit });//end blur function ...
Проверка правильности ввода e-mail адресов готова! Скриншот демонстрирует ее функционирование: