Discover the basics of working with forms in HTML and JavaScript to enhance user interaction and enable various functionalities on your web page.

Forms play a crucial role in HTML and the Web Platform as they allow users to interact with the page in various ways, such as searching for something on the site, triggering filters to narrow down result pages, and sending information.

By default, forms submit their content to a server-side endpoint, with the default endpoint being the page URL itself. However, you can override this behavior by setting the action attribute of the form element and specifying the appropriate method attribute, which defaults to GET. For example:

<form action="/contact" method="POST">
 ...
 <input type="submit">
</form>

In this example, upon clicking the submit button, the browser will make a POST request to the /contact URL on the same origin.

With JavaScript, you can intercept this form submission event and handle it programmatically. To do this, you need to listen for the submit event on the form element using JavaScript. Here’s an example:

const form = document.querySelector('form');
form.addEventListener('submit', event => {
  // handle form submission
  event.preventDefault(); // prevent default form submission behavior
});

By calling the event.preventDefault() method, you can prevent the default behavior of form submission, which would typically reload the page.

In addition to intercepting form submission events, you can also listen for events happening on individual form elements. Some commonly used events include:

  • input: Fired on form elements when the element value is changed.
  • change: Fired on form elements when the element value is changed. For text input elements and textarea, it’s fired only once when the element loses focus (not for every single character typed).
  • cut: Fired when the user cuts text from the form element.
  • copy: Fired when the user copies text from the form element.
  • paste: Fired when the user pastes text into the form element.
  • focus: Fired when the form element gains focus.
  • blur: Fired when the form element loses focus.

Here’s a simple Codepen demo showcasing some form events: Form events demo by Flavio Copes.

In conclusion, understanding how to handle forms in JavaScript gives you more control over form submissions and allows you to enhance user experiences on your web page.