скрипт валидатора формы регистрации
Добрый день, заранее извиняюсь за глупый вопрос. Мне нужно разобраться в таком коде:
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, время: 03:52. |