Подумайте о своем любимом веб-сайте или приложении. Будь то сайт электронной коммерции или служба потоковой передачи, все они имеют довольно схожие функции: вы можете нажимать на элементы на странице и прокручивать вверх и вниз. Эти действия появились не по волшебству — они называются Event Listeners. Общими прослушивателями событий, с которыми мы сталкиваемся, являются «щелчок» и «отправить». Давайте узнаем разницу.
Прежде чем мы сможем понять разницу между «кликом» и «отправкой» прослушивателей событий, нам нужно понять, что такое прослушиватель событий. Прослушиватели событий встроены в методы Javascript, которые, по сути, делают то, что говорит название — они прослушивают событие в нашем документе и выполняют действие, как только это событие было инициировано. Чтобы добавить прослушиватель событий, мы присоединяем .addEventListener() к HTML-элементу, на который мы хотим настроить таргетинг, и передаем ему два аргумента: тип события и функцию.
Синтаксис для .addEventListener():
element.addEventListener("event", function)
Проверьте нижеприведенный прослушиватель событий:
// where you would grab the HTML element const exampleVariable = document.querySelector("#example") // how you would set up the Event Listener after grabbing the HTML element exampleVariable.addEventListener("click", testFunction()) // the function that is being called inside of the Event Listener function testFunction() { console.log("you clicked me!") }
Как вы думаете, что произойдет, если вы нажмете на элемент exampleVariable? Правильно — консоль скажет «вы нажали на меня!»
Теперь, когда мы понимаем, что такое прослушиватель событий, когда мы используем «щелчок» вместо «отправить»? Прослушиватель событий «щелчок» можно прикрепить практически к любому элементу HTML в документе, но «отправить» предназначен специально для форм. «Отправить» позволяет настроить таргетинг формы, чтобы — как предлагает Event Listener — отправить все, что было добавлено в поля формы. Почему бы просто не использовать прослушиватель событий «щелчка» в форме? Если вы добавите «щелчок» вместо «отправить», щелчок внутри вашей формы вызовет прослушиватель событий.
Посмотрите, что происходит, когда вы используете «щелчок»:
по сравнению с тем, что происходит, когда вы используете «отправить»:
Как видите, когда используется событие «щелчок», действие происходит при нажатии на любую часть формы. В данном случае console.log("Я ваш самый большой поклонник!") появлялся при каждом клике. С событием «отправить» console.log («Я ваш самый большой поклонник!») появлялся только тогда, когда форма была отправлена с помощью кнопки отправки.
Если вы посмотрите на приведенный выше пример, вы увидите, что я добавил дополнительную строку с прослушивателем событий «отправить»: e.preventDefault(). Действие по умолчанию «отправить» — обновить страницу. Раздражает, да? К счастью, для этого есть простое решение: event.preventDefault(). Как только вы добавите .preventDefault(), вы предотвратите обновление страницы при каждой «отправке».
После добавления .preventDefault() вы сможете получить то, что было отправлено с формой, и добавить его в DOM, создать базу данных — все, что вы хотите!