Отрицание содержания выбранного элемента
В форме регистрации пытаюсь, прикрутить валидацию средствами 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 сообшения об ошибке новые не добавлялись. |
Все заработало
Разобрался САМ.
$('#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 />, что б не оставалось пустой строки при удаление элементов. |
| Часовой пояс GMT +3, время: 20:00. |