Home Web Front-end Front-end Q&A How to submit a form using JavaScript

How to submit a form using JavaScript

May 09, 2023 am 10:32 AM

In web development, a form is a common element that allows users to submit data to the web server. When the user enters data into the form and clicks the submit button, the form sends a request to the server, and the server processes the request and responds with the result. In this process, JavaScript can be used to listen to the form submission event so that the form data can be processed and verified without refreshing the page. In this article, we'll cover how to submit a form using JavaScript.

1. Form controls

Before using JavaScript to submit a form, we first need to understand some knowledge about HTML form controls. Form controls include input boxes, drop-down boxes, radio buttons, check boxes, etc. In HTML, these controls are defined with tags, and each tag has a type attribute to indicate its type. For example, an input box used to enter text can use the tag, and a button used to submit a form can use the tag. The following are some commonly used form controls and their types:

1. Text box

2. Password box

3. Checkbox

Swimming

4. Radio button

Male

5. Drop-down box

2. Monitoring Form Submit event

To process form data in JavaScript, we need to listen to the form's submit event first. In HTML, the form submission event is defined by the

tag, and you can use JavaScript's addEventListener() method to listen to it. For example, the following code will listen for events when the submit button is clicked:

var btnSubmit = document.getElementById("btnSubmit");
btnSubmit.addEventListener("click", function(event) {
//Process form data
event.preventDefault(); //Prohibit default submission behavior
});

In this example, we first obtain the element of the submit button through the getElementById() method , and call the addEventListener() method to listen for its click event. In the event handler function, we can obtain the form data and process it. Finally, in order to prevent the form's default submission behavior from occurring, we call the event.preventDefault() method to cancel it.

3. Obtain form data

After listening to the form submission event, we need to obtain the form data for processing. In JavaScript, you can use the document.forms[] collection to get form elements. For example, the following code will obtain the input box elements representing the username and password:

var txtUsername = document.forms[0].username;
var txtPassword = document.forms[0].password;

In this example, we use document.forms[0] to get the form element of the first tag, and then get the elements of the username and password input box through the name attribute.

Another way to obtain form data is to use the FormData object. FormData is a new API that can be used to build form data and send it to the server. For example, the following code will use a FormData object to pass user information:

var formData = new FormData();
formData.append("username", txtUsername.value);
formData.append(" password", txtPassword.value);

In this example, we first create a new FormData object, and then use the append() method to add form data to the FormData object. Finally, pass the FormData object to the send() method of the XMLHttpRequest object to send the form data to the server.

4. Verify form data

Before submitting the form, we need to verify the form data. For example, we can check if the username and password are empty:

if(txtUsername.value == "") {
alert("Please enter the username");
txtUsername.focus() ;
return false; //Cancel submission
} else if(txtPassword.value == "") {
alert("Please enter your password");
txtPassword.focus();
return false; //Cancel submission
} else {
//Submit form
return true;
}

In this example, we first check whether the username input box Is empty, if it is empty, a prompt box will pop up and the cursor will be moved to the user name input box. If the username is not empty, we continue to check whether the password input box is empty. If the password is not empty, we allow form submission.

5. Complete JavaScript code example

Now, we have learned how to use JavaScript to submit a form. Here is a complete JavaScript code example that will listen for the form's submit event, get the form data, validate the data, and send it to the server:

var frmLogin = document.getElementById("frmLogin");
frmLogin.addEventListener("submit", function(event) {
var txtUsername = document.forms[0].username;
var txtPassword = document.forms[0].password;

if(txtUsername.value == "") {

alert("请输入用户名");
txtUsername.focus();
event.preventDefault();
Copy after login

} else if(txtPassword.value == "") {

alert("请输入密码");
txtPassword.focus();
event.preventDefault();
Copy after login

} else {

var formData = new FormData();
formData.append("username", txtUsername.value);
formData.append("password", txtPassword.value);

var xhr = new XMLHttpRequest();
xhr.open("POST", "login.php", true);
xhr.onload = function() {
  if(xhr.status == 200) {
    alert(xhr.responseText);
  } else {
    alert("请求失败:" + xhr.status);
  }
};
xhr.send(formData);

event.preventDefault();
Copy after login

}
});

In this example, we first get the element representing the login form through the getElementById() method and call addEventListener () method to listen for its submission event. In the event handling function, we obtain the input box elements of the user name and password and make a judgment. If the requirements are not met, a prompt box will pop up and the default submission behavior of the form will be cancelled. If neither username nor password is empty, a FormData object is created and the data is added to it. Finally, use the XMLHttpRequest object to send the FormData object to the server, and display the response result in the prompt box.

The above is the detailed content of How to submit a form using JavaScript. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is useEffect? How do you use it to perform side effects? What is useEffect? How do you use it to perform side effects? Mar 19, 2025 pm 03:58 PM

The article discusses useEffect in React, a hook for managing side effects like data fetching and DOM manipulation in functional components. It explains usage, common side effects, and cleanup to prevent issues like memory leaks.

How do you connect React components to the Redux store using connect()? How do you connect React components to the Redux store using connect()? Mar 21, 2025 pm 06:23 PM

Article discusses connecting React components to Redux store using connect(), explaining mapStateToProps, mapDispatchToProps, and performance impacts.

What is useContext? How do you use it to share state between components? What is useContext? How do you use it to share state between components? Mar 19, 2025 pm 03:59 PM

The article explains useContext in React, which simplifies state management by avoiding prop drilling. It discusses benefits like centralized state and performance improvements through reduced re-renders.

How do you prevent default behavior in event handlers? How do you prevent default behavior in event handlers? Mar 19, 2025 pm 04:10 PM

Article discusses preventing default behavior in event handlers using preventDefault() method, its benefits like enhanced user experience, and potential issues like accessibility concerns.

What are the advantages and disadvantages of controlled and uncontrolled components? What are the advantages and disadvantages of controlled and uncontrolled components? Mar 19, 2025 pm 04:16 PM

The article discusses the advantages and disadvantages of controlled and uncontrolled components in React, focusing on aspects like predictability, performance, and use cases. It advises on factors to consider when choosing between them.

React's Role in HTML: Enhancing User Experience React's Role in HTML: Enhancing User Experience Apr 09, 2025 am 12:11 AM

React combines JSX and HTML to improve user experience. 1) JSX embeds HTML to make development more intuitive. 2) The virtual DOM mechanism optimizes performance and reduces DOM operations. 3) Component-based management UI to improve maintainability. 4) State management and event processing enhance interactivity.

What are the limitations of Vue 2's reactivity system with regard to array and object changes? What are the limitations of Vue 2's reactivity system with regard to array and object changes? Mar 25, 2025 pm 02:07 PM

Vue 2's reactivity system struggles with direct array index setting, length modification, and object property addition/deletion. Developers can use Vue's mutation methods and Vue.set() to ensure reactivity.

How do you define routes using the <Route> component? How do you define routes using the <Route> component? Mar 21, 2025 am 11:47 AM

The article discusses defining routes in React Router using the &lt;Route&gt; component, covering props like path, component, render, children, exact, and nested routing.

See all articles