Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2011, 17:13
Новичок на форуме
Отправить личное сообщение для Rumato Посмотреть профиль Найти все сообщения от Rumato
 
Регистрация: 28.04.2011
Сообщений: 3

скрипт валидатора формы регистрации
Добрый день, заранее извиняюсь за глупый вопрос. Мне нужно разобраться в таком коде:

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";?>\">&nbsp;Проверяем...");
			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, зачем он?

и как вообще этот скрипт работает?

Объясние, пожалуйста, только начинаю учиться многое не понятно.

Заранее спасибо))
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2011, 17:43
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

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";?>\">&nbsp;Проверяем...");


ставим картинку загрузчика и отправляем 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();

		}
	}



мыла нет. продолжаем регу



Примечание. сотрите этот скрипт. скачайте Фленегана и займитесь действительно чем-нибудь полезным
Ответить с цитированием
  #3 (permalink)  
Старый 29.04.2011, 08:54
Новичок на форуме
Отправить личное сообщение для Rumato Посмотреть профиль Найти все сообщения от Rumato
 
Регистрация: 28.04.2011
Сообщений: 3

Спасибо за ответ и за книгу - скачал, но мне всё же не понятно 'email_ticker' - зачем оно? я могу просто id этого элемента прописать и всё?
мне нужно разобраться с этим
Ответить с цитированием
  #4 (permalink)  
Старый 29.04.2011, 17:33
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

там игра мозгов

$('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 и имя тега
Ответить с цитированием
  #5 (permalink)  
Старый 30.04.2011, 08:58
Новичок на форуме
Отправить личное сообщение для Rumato Посмотреть профиль Найти все сообщения от Rumato
 
Регистрация: 28.04.2011
Сообщений: 3

а понятно, скрипт ищет тег <email_ticker>, когда находит то вставляет

<div id="email_ticker" style="padding-top:10px;"> ololo </div>

Спасибо большое вроде во всём разобрался
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в модальном окне не работает скрипт проверки формы necroms jQuery 1 11.03.2011 15:14
Пересылка данных из формы в скрипт и их обработка Eugene Общие вопросы Javascript 27 01.10.2010 19:29
Проверка наличия логина в БД при регистрации, с помощью ajax storng Общие вопросы Javascript 4 09.04.2010 20:24
Помогите написать скрипт валидации формы RayOfLight Общие вопросы Javascript 2 27.07.2009 11:58
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12