

Differences between requestSubmit() and submit() in HTML forms
source link: http://www.js-craft.io/blog/differences-between-requestsubmit-and-submit-in-html-forms/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Differences between requestSubmit() and submit() in HTML forms
The most used way to programmatically submit an HTML form with Javascript is the submit method:
<form>
<input required name="email" id="email" type="email" placeholder="Email here ...">
<input type="submit" class="submit-btn" value="Use submit()" />
</form>
const form = document.forms[0]
document.querySelector('.submit-btn')
.addEventListener('click', () => form.submit()
form.submit())
However, it has (at least) 2 unexpected behaviors:
- submit will bypass the validation of the form. This means that the above form will be subbitment even if we have the required attribute set on the email input and that input is empty.
// submit() will not take into account the required attr <input required name="email" id="email" type="email" >
- if we a add
addEventListener('submit')
to the form submit will also bypass it. For example:form.addEventListener('submit', e => { // this code will not be called when using submit() e.preventDefault() alert('Code after preventDefault called') })
Now with a full browser support, requestSubmit method aims to provide an more predictable behaivour to our form submisons. The requestSubmit()
will take into account both the native form validation and it alows interceptions with addEventListener('submit')
.
form.addEventListener('submit', e => {
// this will be called only
// when using requestSubmit()
e.preventDefault()
alert('Code after preventDefault called')
})
document.querySelector('.submit-btn')
.addEventListener('click', () => form.submit()
form.submit())
// requestSubmit() will first check for form validation
document.querySelector('.requestSubmit-btn')
.addEventListener('click', () => form.requestSubmit())
Checkout a working codepen here.
I hope you have enjoyed this article and if you would like to get more articles about React and frontend development you can always sign up for my email list.
Newsletter subscribe:
Recommend
-
17
HTML form elements are the foundation for the interactions in web pages. And boy, they improved quite a little bit over the last years. Developers now can use
-
14
#Fundamentals The Differences Between Interpreter and Compiler Explained
-
16
Compared to many other programming languages, structs are very powerful in Swift. Hence, they should be used more often. Hint: This post is using Swift 5 Similarities First, let’s...
-
15
Differences between YUI 2.x and YUI3 setStyleDifferences between YUI 2.x and YUI3 setStyle 23 Jan 2014 Much like Google Images, my...
-
12
React Forms Tutorial: Access Input Values, Validate, Submit FormsHTML elements like headings <h1>, <h2>, paragraphs <p>, or simple textual output <span> are...
-
14
Differences Between #nil?, #empty?, #blank?, and #present? Joyce Echessa on Sep 11, 2018 “I absolutely love AppSignal.” Discover AppSi...
-
8
These are the differences between the Xiaomi Mi 11 and the Mi 11 Pro A Chinese insider has published information on how the already announced Xiaomi...
-
12
Exploring Differences Between Monitoring And ObservabilityJanuary 28th 2021 new story
-
8
Introduction jQuery can be paired with form submission to handle validation. This has the benefit of providing users with feedback on any errors in their input.
-
10
@ashubhosaleashubhosaleI am here to write about my experiences and how I learnt from my experiences.
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK