Страницы: 1
Вот интересно я дурак или что-то здесь не так.
Код
<html> <script language="JavaScript"> function isNumber(elem) { var str = elem.value; var oneDecimal = false; var oneChar = 0; // удостоверяемся, что значение не преобразовано в число str = str.toString(); for (var i = 0; i < str.length; i++) { oneChar = str.charAt(i).charCodeAt(0); // первым символом может быть знак минус if (oneChar == 45) { if (i != 0) { continue; } else { alert("Знак минус может быть только первым символом строки."); elem.focus(); return false; } } // десятичная точка if (oneChar <= 46) { if (!oneDecimal) { oneDecimal = true; continue; } else { alert ("В числе может быть только одна десятичная точка!"); elem.focus(); return false; } } // символы вне диапазона от 0 до 9 не подходят if (oneChar < 48 || oneChar > 57) { alert("В поле разрешено вводить только числа."); elem.focus(); return false; } } return true; } </script> <form name="testform" method="post" action="test5.php"> <input type="hidden" name="good_id[]" value="123456789"> <input type="text" name="good_kol[]" value="0.000" OnBlur="isNumber(this)">F1<br> <input type="hidden" name="good_id[]" value="000000009"> <input type="text" name="good_kol[]" value="0.000" OnBlur="isNumber(this)">F2<br> <input type="hidden" name="ACTION" value=""> <input type="submit" name="knop" value="Оформить"> </form> </html>
Собственно ничего умного здесь нет. Если в поле формы введено неверное значение то об этом надо сказать и установить фокус на это поле. Переход между полями табуляцией.
FF - 1.0.6 - выдает сообщение, переходит на другое поле.
IE - Выдает сообщение и ставит фокус в начало поля с неверным значением.
Mozilla - Выдает сообщение и выделяет значение в поле с неверным значением.
Соттветсвенно поведение и IE и Mozilla меня устраивает. А вот поведение FF нет. Проверялать и Linux и Windows версия.
Если я что то делаю не так - поправьте меня.
Отсутствует
Попробуйте заменить
на
Отсутствует
Так как Вы написали вызывает сл. сообщение.
Ошибка: currentElem has no properties
Источник: http://dp.ceramica.ru/testform.html
Строка: 37
если написать
То поведение не меняется.
Тут момент еще такой.
Когда пытаешся перейти в следующее поле мышью то нормально отрабатывает за исключением того что курсор в поле после значения ставит.
Но если табуляцией то фокус на поле не возвращается.
Отсутствует
Alex99
Ой, прошу прощения!
Отсутствует
Alex99
Ой, прошу прощения!
И не надо использовать глобальные переменные.
Отсутствует
...вот бы еще природу этого понять.
Элемент не теряет фокус, пока не завершится обработка события onblur элементом.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Страницы: 1