2010-12-07 3 views
3

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

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

ответ

2

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

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

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

Смежные вопросы