скрипт валидатора формы регистрации
Добрый день, заранее извиняюсь за глупый вопрос. Мне нужно разобраться в таком коде:
function getEmail(){ var form = document.adminForm; var eadd = form.email.value; if( !$('email_ticker') ) $('email_input').innerHTML = $('email_input').innerHTML + "<div id=\"email_ticker\" style=\"padding-top:10px;\"></div>"; $('email_field').value = eadd; if( !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(form.email.value))) { $('email_ticker').setHTML('<span style="background:#FFFFCC;border:1px solid #CC0000;color:red;font-weight:bold;padding:5px 5px 5px 5px;">Неправильно введён e-mail.</span>'); } else { $('email_ticker').setHTML("<img src=\"<?php echo JURI::base()."images/wait.gif";?>\"> Проверяем..."); var url = 'index.php?option=com_virtuemart&tasked=chkuserinfo&format=raw&what=email'; url = url + '&email=' + form.email.value; new Ajax(url, { method: 'get', onComplete: function(x){ if(x == 1) { $('email_ticker').setHTML('<span style="background:#FFFFCC;border:1px solid #CC0000;color:red;font-weight:bold;padding:5px 5px 5px 5px;">Этот email уже зарегистрирован.</span>'); } else { $('email_ticker').setHTML('<span style="border:1px none transparent;color:green;padding:5px 5px 5px 5px;">Этот email \''+ $('email_field').value +'\' свободен. </br>Можно продолжать регистрацию.</span>'); } } }).request(); } } Я здесь не понимаю что такое: email_ticker, зачем он? и как вообще этот скрипт работает? Объясние, пожалуйста, только начинаю учиться многое не понятно. Заранее спасибо)) |
var form = document.adminForm; var eadd = form.email.value; в form форма, в eadd значение поля с именем email if( !$('email_ticker') ) $('email_input').innerHTML = $('email_input').innerHTML + "<div id=\"email_ticker\" style=\"padding-top:10px;\"></div>"; омг если нет элемента и ИМЕНЕМ ТЕГА email_ticker,то вставляем элемент DIV с ID, равным email_ticker. решетку пропустили в селекторе :) $('email_field').value = eadd; это магия гавнокода. if( !(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(form.email.value))) { если емайл НЕ соответствует шаблону (на хабре видел этот регэксп), то ... $('email_ticker').setHTML('<span style="background:#FFFFCC;border:1px solid #CC0000;color:red;font-weight:bold;padding:5px 5px 5px 5px;">Неправильно введён e-mail.</span>'); пишем,что мыло неверно иначе (мыло верное): } else { $('email_ticker').setHTML("<img src=\"<?php echo JURI::base()."images/wait.gif";?>\"> Проверяем..."); ставим картинку загрузчика и отправляем AJAX запрос. по приходу теста со страницы .... var url = 'index.php?option=com_virtuemart&tasked=chkuserinfo&format=raw&what=email'; url = url + '&email=' + form.email.value; new Ajax(url, { method: 'get', onComplete: function(x){ if(x == 1) { $('email_ticker').setHTML('<span style="background:#FFFFCC;border:1px solid #CC0000;color:red;font-weight:bold;padding:5px 5px 5px 5px;">Этот email уже зарегистрирован.</span>'); ... если страница возвратила 1, то мыло есть. пишем ошибку } else { $('email_ticker').setHTML('<span style="border:1px none transparent;color:green;padding:5px 5px 5px 5px;">Этот email \''+ $('email_field').value +'\' свободен. </br>Можно продолжать регистрацию.</span>'); } } }).request(); } } мыла нет. продолжаем регу Примечание. сотрите этот скрипт. скачайте Фленегана и займитесь действительно чем-нибудь полезным :) |
Спасибо за ответ и за книгу - скачал, но мне всё же не понятно 'email_ticker' - зачем оно? я могу просто id этого элемента прописать и всё?
мне нужно разобраться с этим:) |
там игра мозгов :)
$('email_ticker') найдет все элементы с именем тега email_ticker напр <email_ticker> текст </email_ticker> с чего я это взял? почитайте про селекторы. а этот код $('email_input').innerHTML + "<div id=\"email_ticker\" style=\"padding-top:10px;\"></div>"; вставляет в элемент такой html <div id="email_ticker" style="padding-top:10px;"> ololo </div> видите несоответствие?) ID и имя тега |
а понятно, скрипт ищет тег <email_ticker>, когда находит то вставляет
<div id="email_ticker" style="padding-top:10px;"> ololo </div> Спасибо большое вроде во всём разобрался |
Часовой пояс GMT +3, время: 15:55. |