|
|
|
| Здравствуйте!
У меня идёт проверка по регулярному выражению содержимого поля (только русские буквы):
<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>
|
Скрипт работает неверно - выдаёт ошибку только после того, как неверный символ введён дважды, да и вообще ведёт себя неадекватно. Помогите, сам не вижу ошибки. | |
|
|
|
|
|
|
|
для: barcelona
(12.12.2007 в 18:59)
| | Это, скорее, вопрос в раздел JavaScript.. С рег. выражением всё нормально.
Вы нажимаете клавишу. Срабатывает событие, запускается функция check(). На данный момент значение поля fio еще не изменилось. Функция отрабатывает и только тогда значение поля меняется.
Нажимаете клавишу еще раз, опять запускается та же функция и проверяет предыдущее значение поля. | |
|
|
|
|
|
|
|
для: kasmanaft
(12.12.2007 в 19:55)
| | kasmanaft, Вы совершенно правы. Поменял событие на onKeyUp - и всё нормально. Спасибо! | |
|
|
|