Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вернуть фокус на элемент после валидации формы 
:(
    Опции темы
Janita
Дата 3.3.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.11.2004

Репутация: нет
Всего: 1



Есть функция, которая по onchange проверяет введенное значение, как сделать так, что если значение неправильное, то фокус остается в том же поле ввода, а не переходит на следующее? Понимаю, что вопрос элементарный, но следующий код у меня не работает не могу понять почему.
Код

<html>
<head>
<script language="Javascript">
function validation(pattern,len, field){  
 var value=field.value;
 var str=value.replace(/[@!$%&*()+=\/\^\\]/g, '');
 str=str.replace(/\s{2,}/,' ');
 var result=str.match(pattern);
 if ((result ==null)||(str.lenght != len)){
   field.focus();  
   alert('Неправильный формат');  
   field.focus();  
   return 0;
 }else{  
   return result;
 }
}

</script>
</head>
<body>
 <form name="testform" action="" method="post" enctype="multipart/form-data">
<table>
 <tr>
   <td>seria:</td>
   <td><input name="seria" onchange="validation('/\d{2}\s+\d{2}/', 5, this)"/></td>
 </tr>

 <tr>
   <td>number:</td>
   <td><input name="num" onchange="validation('/\d{6}/', 6, this)"/></td>
 </tr>
</table>
 </form>
</body>
</html>


PM MAIL   Вверх
Aliance
Дата 4.3.2005, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Читай здесь Валидация форм

...

Код

...
     alert("Что-то неверно <_<.");
     setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
     return false;
...
function focusElement(formName, elemName) {
 var elem = document.forms[formName].elements[elemName];
 elem.focus();
 elem.select();
}
...


Это сообщение отредактировал(а) Aliance - 4.3.2005, 19:22
PM MAIL WWW ICQ Skype   Вверх
Janita
Дата 5.3.2005, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 24.11.2004

Репутация: нет
Всего: 1



Огромное спасибо! Вы мне очень помогли, я уже не знала что и придумать.
А для чего надо вызывать функцию setTimeout? почему без нее не работает?
PM MAIL   Вверх
Aliance
Дата 5.3.2005, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Это задержка для IE... Без нее может некооректно работать
PM MAIL WWW ICQ Skype   Вверх
Иль
Дата 17.3.2005, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: 2
Всего: 14



Цитата
Это задержка для IE... Без нее может некооректно работать
Ужас как бывает приятно и полезно рыться в поиске. Тоже мучался этим вопросом smile


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.