Помогите!? IE9: событие onChange не запускается, когда значение изменяется скриптом onkeydown и пользовательскими вкладками - PullRequest
2 голосов
/ 01 апреля 2011

У нас есть собственное числовое текстовое поле в asp.net. В событии oninput ввод проверяется на недопустимые символы и устанавливается значение текстового поля. Событие OnChange обрабатывается для выполнения некоторых действий после того, как пользователь покидает текстовое поле. Это работает в Firefox, Chrome и IE8.

В IE9 событие onchange больше не запускается после того, как текст установлен в предыдущем событии. Это проблема вкратце:

<input type="text" onKeyDown="this.value=this.value;" onChange="alert('test');" />

В этом примере событие onChange не будет запускаться в IE9. Неважно, какое событие вы используете, OnKeyDown, OnInput, OnPropertyChange или что-то еще. Когда вы меняете OnKeyDown на "", OnChange срабатывает.

Есть идеи, почему это больше не работает в IE9, и как это исправить? Спасибо!

Обновление: я проверял, срабатывает ли onChange, когда я покидаю текстовое поле клавишей TAB. Onchange не запускается в IE9, когда вы нажимаете tab, но он срабатывает, когда вы покидаете текстовое поле щелчком мыши где-то на форме.

Так почему же происходит событие onchange при выходе из текстового поля щелчком мыши, а не нажатием клавиши табуляции?

1 Ответ

2 голосов
/ 01 апреля 2011

Существует ошибка IE9 в отношении события onchange, поэтому, возможно, вы могли бы добавить событие onpropertychange на вход (связать оба события):

<input type="text" onKeyDown="this.value=this.value;" onChange="alert('test');" onpropertychange="alert('change');" />

Это просто обходной путь, надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...