📋 Forms Handling DOM
Last Updated: May 2026
📂 Basic HTML Form Structure
<form id="myForm">
<input type="text" id="username" placeholder="Enter name" name="username" />
<input type="email" id="email" placeholder="Enter email" name="email" />
<button type="submit">Submit</button>
</form>
Access Form Elements via individual IDs
<script>
const username = document.getElementById("username");
const email = document.getElementById("email");
console.log(username);
console.log(email);
// Access Input Values
console.log(username.value);
console.log(email.value);
</script>
Access Form Elements via Form Object
- Instead of selecting every input separately using
getElementById(), JavaScript provides a Form Object that makes form handling much easier. - It use
nameattribute as key. form.elementshave collection of all form fields.- Directly access using
form.elementsNameproperty.
<script>
const form = document.getElementById("myForm");
const username = form.elements.username;
const email = form.elements.email;
console.log(username);
console.log(email);
// Access Input Values
console.log(username.value);
console.log(email.value);
</script>
<!-- OR Use Shortcut Access -->
<script>
const form = document.getElementById("myForm");
const username = form.username;
const email = form.email;
console.log(username);
console.log(email);
// Access Input Values
console.log(username.value);
console.log(email.value);
</script>
Access Form Elements via FormData Object (Modern Approach)
- It is a easier way to access form data.
- It is a collection of all form fields.
formData.entries()have collection of all form fields.formData.get('name')get value of name attribute.formData.set('name', 'value')set value of name attribute.formData.append('name', 'value')append value of name attribute.formData.delete('name')delete value of name attribute.
<script>
const form = document.getElementById("myForm");
const formData = new FormData(form);
console.log(formData);
console.log(formData.get("username"));
console.log(formData.get("email"));
</script>
Convert Entire Form into Object
<script>
const form = document.getElementById("myForm");
const formData = new FormData(form);
const formObject = Object.fromEntries(formData);
console.log(formObject);
</script>
Output
{
"username": "Shivam",
"email": "shivam@tukkalearn.in"
}
🗣 Hinglish Tip: Ye React, Next.js, APIs aur backend submission me bahut use hota hai.
🎯 Form Submit Event
JavaScript uses the submit event to detect form submission.
<script>
form.addEventListener("submit", function (event) {
event.preventDefault();
const userValue = username.value;
const emailValue = email.value;
console.log(userValue);
console.log(emailValue);
});
</script>
🚫 Prevent Page Reload
By default, form submit reloads the page.
Use:
event.preventDefault();
🗣 Hinglish Tip:
preventDefault()browser ka default behavior rok deta hai.
🎯 Checkbox Handling
<input type="checkbox" id="agree" />
const agree = document.getElementById("agree").checked;
console.log(agree);
🔘 Radio Button Handling
<input type="radio" name="gender" value="Male" />
<input type="radio" name="gender" value="Female" />
const gender = document.querySelector('input[name="gender"]:checked').value;
console.log(gender);
📋 Select Dropdown Handling
<select id="country">
<option>India</option>
<option>USA</option>
</select>
const country = document.getElementById("country").value;
console.log(country);
🧹 Reset Form
form.reset();
📡 Sending Form Data to Server
Using fetch()
fetch("https://api.example.com/data", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
username: username,
email: email,
}),
})
.then((response) => response.json())
.then((data) => console.log(data));
💡 Quick Practice
Create a complete registration form with the following fields and errors handling:
- Name
- Password
- Confirm Password
- Gender
- Country Dropdown
- Terms Checkbox
- Submit Button
- Reset Button