Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2011, 14:09
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Отрицание содержания выбранного элемента
В форме регистрации пытаюсь, прикрутить валидацию средствами Javascript. Для краткости сократил ее до 1 строки
<form action="" method="post" name="auth_form" id="auth_form">
 <fieldset><legend>Обязательные поля</legend>
 <table width="525" border="0" cellspacing="5" cellpadding="5">
  <tr>
    <td align="right"><label for="surname">Фамилия*</label></td>
    <td id="td_surname"><input name="surname" type="text" id="surname" size="30" maxlength="20"  value="{$_POST['surname']}"/></td>
  </tr>
</table>
</fieldset>	
 </form>

По валидации вопросов не возникает.
С выводом сообщений по резульатам проверки чуть сложнее,
Не получается сделать так, что сообщение выводилось только один раз, сейчас при каждом событии blur добавляется новая запись об ошибке.
$('#surname').blur(function(){
		var surname = $('#surname').val();
		var msg = surname.search(/[A-Za-zА-Яа-я\d]{3,25}/);
		if(msg==-1){
			$('#td_surname').prepend('<span class="error">В поле фамилия содержиться ошибка</span><br />');
			}
	});

После того как ввести в поле 1 символ, и не сколько раз происходит событие blur имеем следующие
<tr>
<td align="right">
<label for="surname">Фамилия*</label>
</td>
<td id="td_surname">
<br>
<input id="surname" type="text" value="" maxlength="20" size="30" name="surname">
<br>
<span class="error">В поле фамилия содержиться ошибка</span>
<br>
<span class="error">В поле фамилия содержиться ошибка</span>
<span class="error">В поле фамилия содержиться ошибка</span>
</t

Нужно чтоб после добавление 1 сообшения об ошибке новые не добавлялись.
Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2011, 19:47
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Все заработало
Разобрался САМ.
$('#surname').blur(function(){
		$(this).parent().find('.error').remove();
		var surname = $('#surname').val();
		var msg = surname.search(/[A-Za-zА-Яа-я\d]{3,25}/);
		if(msg==-1){
			$(this).parent().prepend('<span class="error">В поле фамилия содержиться ошибка<br /></span>');
		}

Добавил в начало скрипта

$(this).parent().find('.error').remove();

и перенес в тег span <br />, что б не оставалось пустой строки при удаление элементов.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тип элемента формы MCTrane Общие вопросы Javascript 6 15.12.2011 08:08
помогите "уловить" момент появления элемента Bebarr Swallow Events/DOM/Window 4 18.03.2011 08:16
Узнать CSS правило для элемента vinet Events/DOM/Window 4 10.12.2010 08:12
Текст после элемента Vulkan Events/DOM/Window 3 15.10.2010 11:59
Центрирование элемента относительно центра другого элемента idrozd jQuery 1 27.01.2010 13:32