Table of Contents
Submit FormData to the server
It's easier to handle file uploads
Basically that's it
Home Web Front-end H5 Tutorial Submitting Form Data Using New HTML5 Methods (FormData)

Submitting Form Data Using New HTML5 Methods (FormData)

Jul 08, 2025 am 02:28 AM
html5 formdata

It is more convenient to submit form data using HTML5's FormData API. 1. It can automatically collect form fields with name attribute or manually add data; 2. It supports submission in multipart/form-data format through fetch or XMLHttpRequest, which is suitable for file upload; 3. When processing files, you only need to append the file to FormData and send a request; 4. Note that the same name field will be overwritten, JSON conversion and no nesting structure need to be handled.

Submitting Form Data Using New HTML5 Methods (FormData)

Submitting form data using the new HTML5 method is actually more convenient than before, especially after FormData API. It not only simplifies the process of data collection, but also easily handles complex scenarios such as file uploading, which is particularly suitable for the needs of modern web development.

Submitting Form Data Using New HTML5 Methods (FormData)

Collect form data using FormData

FormData is a built-in JavaScript object that can easily collect data in forms. You don't need to manually traverse each input box, and you don't have to worry about encoding issues.

It's very simple to use, just pass in a <form></form> element:

Submitting Form Data Using New HTML5 Methods (FormData)
 const form = document.querySelector(&#39;form&#39;);
const formData = new FormData(form);

In this way, formData contains all field values ​​in the form with name attribute. Note that if a field does not have name , it will not be collected.

If you just want to add some data manually, you can also not bind the entire form:

Submitting Form Data Using New HTML5 Methods (FormData)
 const formData = new FormData();
formData.append(&#39;username&#39;, &#39;john_doe&#39;);
formData.append(&#39;age&#39;, &#39;25&#39;);

Submit FormData to the server

After collecting the data, the next step is to send it to the server. The most common way is to send a POST request in conjunction with fetch or XMLHttpRequest .

Here is an example of submitting with fetch :

 fetch(&#39;/submit&#39;, {
  method: &#39;POST&#39;,
  body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));

It should be noted that FormData will be automatically sent in multipart/form-data format, which is a key format that supports file upload. If you are using the JSON interface, you may need to convert it into a normal object first:

 const obj = Object.fromEntries(formData);

However, at this time, be careful if there are multiple fields with the same name (such as multiple selection boxes), the subsequent values ​​will be overwritten by the previous one. Be careful.

It's easier to handle file uploads

In the past, when handling file uploads, we usually needed to use iframes or plug-ins to simulate asynchronous uploads. Now we just need to use FormData directly.

For example, if you want the user to upload avatar:

 <input type="file" name="avatar">

Then read the file in JS and append it to FormData :

 const fileInput = document.querySelector(&#39;input[type="file"]&#39;);
const file = fileInput.files[0];

const formData = new FormData();
formData.append(&#39;avatar&#39;, file);

Then send it out with fetch , and the server can receive it normally. This applies to various types of files such as pictures and PDFs.

If you also want to preview the pictures uploaded by users, you can use FileReader to cooperate with Blob . Although this part is not the content of FormData , it is often used with file operations.

Basically that's it

In general, HTML5's FormData makes front-end processing of forms more intuitive and powerful. Whether it is basic data collection, asynchronous submission, or file upload, it supports it well. And with the support of fetch and modern browsers, the code is also written cleaner.

Of course, there are some details to pay attention to, such as:

  • The form field must have name to be collected
  • The fields with the same name will be merged (only the last one is retained)
  • Nested structures (such as arrays or objects) are not supported

However, these problems have corresponding solutions, and overall, they are very easy to use.

The above is the detailed content of Submitting Form Data Using New HTML5 Methods (FormData). 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

Undress AI Tool

Undress AI Tool

Undress images for free

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.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

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 the aside element for in HTML5? What is the aside element for in HTML5? Aug 12, 2025 pm 04:37 PM

Theelementshouldbeusedforcontenttangentiallyrelatedtothemaincontent,suchassidebars,pullquotes,definitions,advertisements,orrelatedlinks;2.Itcanbeplacedinsideoroutsideanarticledependingoncontext;3.ItisasemanticelementthatenhancesaccessibilityandSEObyp

How to create a simple HTML5 webpage How to create a simple HTML5 webpage Aug 12, 2025 am 11:51 AM

To create a simple HTML5 web page, you need to first use the declaration document type, and then build a basic structure containing, and, which sets the character encoding, viewport and title, add visible content such as title, paragraph, link, pictures and lists. Save it as a .html file and open it directly in the browser for viewing, without server support. This is the basis of a complete and effective HTML5 page.

How do you use the autofocus attribute in HTML5? How do you use the autofocus attribute in HTML5? Aug 14, 2025 pm 06:47 PM

Theautofocusattributeautomaticallyfocusesaformelementwhenapageloads.2.Itisabooleanattribute,sonovalueisneeded—justincludeautofocusinthetag.3.Onlyoneelementperpageshoulduseittoavoidunpredictablebehavior.4.Itworksoninput,textarea,select,andbuttonelemen

How to use the nav tag for navigation links in HTML5 How to use the nav tag for navigation links in HTML5 Aug 15, 2025 am 05:55 AM

ThetaginHTML5isusedtodefineasectionofmajornavigationlinks,providingsemanticstructureandimprovingaccessibilityandSEO;itshouldwrapprimarynavigationelementslikemenusortablesofcontents,noteverylinkonapage,andcanbeenhancedwithARIAlabelssuchasaria-label=&q

What is a definition list in HTML5? What is a definition list in HTML5? Aug 20, 2025 pm 02:01 PM

AdefinitionlistinHTML5iscreatedusingtheelementtogroupterms()withtheirdefinitions(),allowingmultipletermstoshareadefinitionoratermtohavemultipledefinitions,makingitidealforFAQs,glossaries,metadata,andcontactdetailswhileimprovingaccessibilityandSEOthro

How to create a custom checkbox with HTML5 How to create a custom checkbox with HTML5 Aug 16, 2025 am 07:05 AM

To create a custom checkbox, you must first use an HTML structure with label to ensure accessibility; 2. Hide the default checkbox through CSS but retain its functionality; 3. Use pseudo-elements and pseudo-classes to draw the selected state on the custom .checkmark elements; 4. Add hover, focus and select styles to enhance interactive feedback; 5. Keep native inputs present to support keyboard navigation and screen readers, and ultimately achieve beautiful and accessible custom checkboxes.

What is the figure element and how is it used with figcaption in HTML5? What is the figure element and how is it used with figcaption in HTML5? Aug 20, 2025 pm 02:06 PM

TheelementinHTML5isusedtomarkupself-containedcontentlikeimages,diagrams,orcodesnippetsthatcanstandindependentlywithinadocument.Itcanbepairedwiththeoptionalelementtoprovideacaptionortitle,whichmayappearasthefirstorlastchildinside.Thiscombinationenhanc

How to preload content with rel='preload' in HTML5? How to preload content with rel='preload' in HTML5? Aug 20, 2025 pm 04:12 PM

rel="preload" is used to load key resources in advance to improve page performance. 1. Use syntax and specify the as attribute; 2. Preload key resources such as fonts, style sheets, scripts, pictures, etc., and the font needs to be added crossorigin; 3. It can be loaded according to conditions in combination with media attributes; 4. Follow best practices such as loading only key resources on the first screen, avoiding excessive use, and correctly setting type and crossorigin; 5. Modern browsers widely support it, and can dynamically add or perform gradual enhancement processing through JavaScript to ensure that the page still works normally when it is not supported.

See all articles