Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Неверная работа скрипта проверки поля
 
 автор: barcelona   (12.12.2007 в 18:59)   письмо автору
 
 

Здравствуйте!
У меня идёт проверка по регулярному выражению содержимого поля (только русские буквы):

<script language="JavaScript"> 
function check() 

var element=document.getElementById('fio').value; 
var pred=document.getElementById('pred'); 
var pattern = /[^а-яА-ЯёЁ\-\s]/; 
   if (element!='') 
   { 
         if (pattern.test(element)) 
         { 
         pred.innerHTML="NO!"; 
         } else {pred.innerHTML="";} 
   } else {pred.innerHTML="";} 

</script> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="form1"> 
<input type="text" name="fio" id="fio" size="50" onKeyPress="check();"><div id="pred"></div> 
</form>

Скрипт работает неверно - выдаёт ошибку только после того, как неверный символ введён дважды, да и вообще ведёт себя неадекватно. Помогите, сам не вижу ошибки.

   
 
 автор: kasmanaft   (12.12.2007 в 19:55)   письмо автору
 
   для: barcelona   (12.12.2007 в 18:59)
 

Это, скорее, вопрос в раздел JavaScript.. С рег. выражением всё нормально.

Вы нажимаете клавишу. Срабатывает событие, запускается функция check(). На данный момент значение поля fio еще не изменилось. Функция отрабатывает и только тогда значение поля меняется.
Нажимаете клавишу еще раз, опять запускается та же функция и проверяет предыдущее значение поля.

   
 
 автор: barcelona   (12.12.2007 в 20:15)   письмо автору
 
   для: kasmanaft   (12.12.2007 в 19:55)
 

kasmanaft, Вы совершенно правы. Поменял событие на onKeyUp - и всё нормально. Спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования