Почему в JavaScript метод размытия вызывает событие размытия, а метод submit не вызывает событие submit? - PullRequest
3 голосов
/ 07 декабря 2010

Я думал о том, чтобы заставить обработчик onblur работать, вызвав метод размытия элемента.Но потом я подумал, что это не сработает, потому что я вспомнил, что вызов submit для FormElement не вызывает запуск метода onsubmit.

После некоторых экспериментов я обнаружил, что вызов blur вызывает onblur элементаобработчик для вызова.Это кажется очень противоречивым, не то чтобы меня это удивляло (это ведь JS).Тем не менее, если есть веская причина для этого, я хотел бы знать.Есть ли веская причина для вызова обработчика в случае размытия, но не отправки?

1 Ответ

2 голосов
/ 07 декабря 2010

Я согласен, что кажется противоречивым.Я считаю, что поведение OnSubmit имеет массу унаследованного багажа, потому что большая часть его функциональности была разработана таким образом, чтобы люди могли кодировать прямо внутри элементов формы.Для этого onsubmit использовался для проверки ввода без взлома редактора исходного кода или файла javascript.Я предполагаю, что когда они кодировали это поведение (давным-давно), это казалось разумным, потому что, как только вы попали в javascript, программист может легко проверить ввод самостоятельно, поэтому автоматическая проверка не требуется.Похоже на недосмотр для меня.

Этот следующий веб-сайт в режиме quirksmode специально предупреждает об этом, поэтому очевидно, что многие люди смущены этим.

http://www.quirksmode.org/js/forms.html

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