Подскажите, пожалуйста, как решить следующую проблему.

Выделить код

Код:

<form ...>
 только цифры: <input type="text" name="ClientID" onKeyPress="if(event.keyCode<48 || event.keyCode>57) return false;">
</form>

ВСЕ браузеры, кроме FF, понимают этот код и позволяют вводить в поле только цифры.
FF - не позволяет вводить в это поле вообще ничего...
Что неправильно?

Спасибо.

Фильтр ввода для текстового поля

Спасибо!

Но осадок остался. :)
Почему в FF не работает то, что работает во всех других броузерах?.. :(

Потому что Файрфокс поддерживает JavaScript по стандартам, а в ИЕ JScript - частично по стандартам, частично - какие-то собственные функции. Это обсуждалось не раз и не два. Файрфокс не обязан поддерживать все что напридумывал Майкрософт, не только потому что уже есть браузер, ведущий себя в точности как ИЕ - а именно, ИЕ, который, однако же, не всех устраивает, но и потому, что есть довольно большая эксклюзивная функциональность ИЕ - ActiveX, фильтры, расширенная объектная модель JScript, которые позволяют скриптам получать неограниченный доступ к файловой системе вашего компьютера, а вирусам - скачиваться и запускаться без Вашего ведома. По этим причинам, а также по той причине, что надо когда-то начинать нормально поддерживать стандарты, иначе разработчики никогда не начнут писать страницы по стандартам, Файрфокс поддерживает далеко не все эксклюзивные объекты ИЕ. Например, без innerHTML обойтись было никак нельзя. А вот почему CSS2.1, и даже 2.0, появившийся несколько лет назад, не поддерживается, за исключением только части селекторов (не всех) вышедшим совсем недавно браузером ИЕ7 - это большой вопрос. Данный факт значительно тормозит развитие веб-дизайна и веб-разработки.

==> Разработка

Al_H пишет

Потому что Файрфокс поддерживает JavaScript по стандартам, а в ИЕ JScript - частично по стандартам, частично - какие-то собственные функции.

Я согласен. Ну а что в этом коде нестандартного?

Выделить код

Код:

onKeyPress="if(event.keyCode<48 || event.keyCode>57) return false;"

кстати, при замене onkeypress на onkeydown, исходный пример будет работать в IE и Firefox, а в Opera (по крайней мере, версий 8.5 и 9.0) - не будет.

Ну а что в этом коде нестандартного?

Добавлено Сбт 06 Янв 2007 15:18:37 :
P.S.: Пожалуйста, ознакомьтесь с объектной моделью event - в части случаев достаточно ее, в части случаев кроме стандартной объектной модели Вам понадобится знать и IEшную для создания совместимых скриптов.

keyCode это по стандарту:
http://developer.mozilla.org/en/docs/DOM:event.keyCode
http://www.w3.org/TR/1999/WD-DOM-Level-2-19990304/events.html#attribute-keyCode