How to specify that the form should not be validated when submitted in HTML?

The form element in HTML enables creating interactive sections like contact forms and login forms where users can input and submit data to web servers. By default, HTML5 provides built-in form validation to ensure that user input meets specific requirements before submission.

However, there are scenarios where you might want to disable form validation such as during development, testing, or when implementing custom validation logic. HTML provides several methods to bypass the browser's default validation behavior when a form is submitted.

Syntax

Following are the three main syntaxes to disable form validation

Using the novalidate attribute on the form

<form action="/submit" method="post" novalidate>
   <!-- form fields -->
</form>

Using the formnovalidate attribute on submit buttons

<button type="submit" formnovalidate>Submit Without Validation</button>

Using JavaScript to prevent validation

form.addEventListener('submit', function(event) {
   event.preventDefault();
   // Custom submission logic
});

Using the novalidate Attribute

The novalidate attribute is a boolean attribute that can be added to the <form> element. When present, it tells the browser to skip validation entirely for all form fields, even those with validation attributes like required, pattern, or specific input types.

Example

Following example demonstrates a form with the novalidate attribute

<!DOCTYPE html>
<html>
<head>
   <title>Form with novalidate Attribute</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Registration Form (No Validation)</h2>
   <form method="post" action="#" novalidate>
      <label for="username">Username:</label><br>
      <input type="text" id="username" name="username" required><br><br>
      
      <label for="email">Email:</label><br>
      <input type="email" id="email" name="email" required><br><br>
      
      <label for="password">Password:</label><br>
      <input type="password" id="password" name="password" required minlength="8"><br><br>
      
      <button type="submit">Submit</button>
   </form>
</body>
</html>

Even though the form fields have required attributes and the password has a minlength requirement, clicking "Submit" will submit the form without any validation checks because of the novalidate attribute.

Using the formnovalidate Attribute

The formnovalidate attribute can be applied to individual submit buttons or input elements with type="submit". This attribute allows you to have multiple submit buttons where some trigger validation and others bypass it.

Example

Following example shows a form with two submit buttons one with validation and one without

<!DOCTYPE html>
<html>
<head>
   <title>Form with formnovalidate Attribute</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Contact Form</h2>
   <form method="post" action="#">
      <label for="name">Full Name:</label><br>
      <input type="text" id="name" name="name" required><br><br>
      
      <label for="email">Email Address:</label><br>
      <input type="email" id="email" name="email" required><br><br>
      
      <label for="message">Message:</label><br>
      <textarea id="message" name="message" required></textarea><br><br>
      
      <button type="submit">Submit with Validation</button>
      <button type="submit" formnovalidate>Save as Draft</button>
   </form>
</body>
</html>

The first button "Submit with Validation" will trigger HTML5 validation, while "Save as Draft" will submit the form without validation due to the formnovalidate attribute.

Using JavaScript to Control Validation

JavaScript provides the most flexible approach to control form validation. You can prevent the default validation behavior and implement custom validation logic or submit forms without any validation.

Example

Following example demonstrates using JavaScript to bypass validation and implement custom submission logic

<!DOCTYPE html>
<html>
<head>
   <title>JavaScript Form Control</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Custom Form Handling</h2>
   <form id="myForm" method="post" action="#">
      <label for="username">Username:</label><br>
      <input type="text" id="username" name="username" required><br><br>
      
      <label for="email">Email:</label><br>
      <input type="email" id="email" name="email" required><br><br>
      
      <label for="age">Age:</label><br>
      <input type="number" id="age" name="age" min="18" required><br><br>
      
      <button type="submit">Submit</button>
      <button type="button" onclick="submitWithoutValidation()">Force Submit</button>
   </form>
   
   <p id="result"></p>
   
   <script>
      function submitWithoutValidation() {
         const form = document.getElementById('myForm');
         const formData = new FormData(form);
         
         // Custom processing without validation
         const result = document.getElementById('result');
         result.innerHTML = 'Form submitted without validation!<br>' +
                           'Username: ' + formData.get('username') + '<br>' +
                           'Email: ' + formData.get('email') + '<br>' +
                           'Age: ' + formData.get('age');
      }
      
      // Optional: Prevent default validation on form submit
      document.getElementById('myForm').addEventListener('submit', function(event) {
         event.preventDefault();
         document.getElementById('result').innerHTML = 'Normal submit prevented by JavaScript';
      });
   </script>
</body>
</html>

The "Force Submit" button bypasses all validation and processes the form data directly using JavaScript, while the regular "Submit" button is intercepted to demonstrate custom handling.

Comparison of Methods

Following table compares the different approaches to disable form validation

Method Scope Use Case Browser Support
novalidate Entire form Disable validation for all form submissions HTML5 browsers
formnovalidate Specific button Multiple submit options (e.g., Save vs Submit) HTML5 browsers
JavaScript Flexible control Custom validation logic and complex scenarios All browsers with JS support

Common Use Cases

Here are typical scenarios where you might want to disable form validation

  • Draft saving Allow users to save incomplete forms for later completion.

  • Testing Bypass validation during development and testing phases.

  • Custom validation Implement server-side validation or more complex client-side logic.

  • Progressive enhancement Provide fallback behavior for older browsers.

Conclusion

HTML provides multiple ways to disable form validation when needed. The novalidate attribute disables validation for the entire form, formnovalidate provides button-specific control, and JavaScript offers the most flexibility for custom validation scenarios. Choose the method that best fits your specific requirements and user experience goals.

Updated on: 2026-03-16T21:38:54+05:30

952 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements