Виклик методу submit () форми не рівносильний натискання кнопки відправки. При виклику цього методу буде виконано тільки третє з перерахованих вище трьох дій - відправка даних на сервер. Те, що він не повинен породжувати виклик обработчікаonClick кнопки відправки, цілком зрозуміло - адже ми намагаємося відправити дані в обхід кнопки відправки (якої, до речі, може і не бути зовсім). Але і обробник події onSubmit у форми теж не викликається - це є для багатьох несподіваним. Не будемо судити, наскільки це логічно (і чому це поведінка відрізняється від поведінки методу reset (), див. Нижче), а просто проілюструємо цей ефект, ввівши в попередній приклад посилання, що викликає метод submit ():
Приклад 5.8. Метод submit () не викликає обробника onSubmit (html, txt)
Приклад 5.9. Примусовий виклик onSubmit перед submit () (html, txt)
Є ще один спосіб ініціювати відправку даних форми в обхід кнопки відправки (якої, до речі, у форми може і не бути). Якщо фокус знаходиться на будь-якому текстовому полі форми і користувач натисне клавішу Enter, то (в більшості браузерів) відбудеться виклик обробника події onSubmit форми і відправка даних на сервер.
Введіть текст і натисніть Enter:
Приклад 5.10. Відправка даних форми натисканням клавіші Enter (html, txt)
Цей спосіб працює логічніше, ніж метод submit (), тому що відправляються на сервер дані не уникають попередньої перевірки оброблювачем onSubmit.
Кнопка скидання (reset) дозволяє повернути все поля форми в первісний стан, яке вони мали при завантаженні сторінки. Натискання кнопки скидання призводить до наступної послідовності дій браузера:
- виклик обробника події onClick у даній кнопки;
- виклик обробника події onReset у форми;
- відновлення значень за замовчуванням у всіх полях форми.
Виклик методу click () у кнопки скидання рівносильний натискання цієї кнопки, тобто призводить до тих же трьох дій:
Приклад 5.11. Виклик методу click () у кнопки скидання (html, txt)
Є способи скинути форму в початковий стан в обхід кнопки скидання (якої, до речі, у форми може і не бути). По-перше, це виклик методу reset () у форми. По-друге, якщо фокус знаходиться на будь-якому полі або кнопці форми, то можна натиснути клавішу Esc. приклад:
Приклад 5.12. Скидання форми натисканням клавіші Esc (html, txt)
Як можна бачити, обидва способи не просто скидають форму, але і викликають обробник події onReset форми. Таким чином, метод reset () поводиться більш логічно і передбачувано, ніж submit ().