How to disable Google Chrome autofill option?

Google Chrome's autofill feature can sometimes interfere with user experience by automatically populating form fields with previously entered data. To disable this functionality, you can use the autocomplete attribute with specific values that prevent Chrome from filling in form data.

Syntax

Following is the syntax to disable autofill on form elements

<form autocomplete="off">
<input type="text" autocomplete="new-password">

The autocomplete attribute can be applied to both the <form> element and individual <input> elements to control autofill behavior.

Using autocomplete="off"

The standard approach is to set autocomplete="off" on the form or individual input fields. However, Chrome may ignore this directive for certain field types, especially login forms.

Example

Following example demonstrates the basic method to disable autofill

<!DOCTYPE html>
<html>
<head>
   <title>Basic Autofill Disable</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>User Registration</h2>
   <form action="/action_page.php" method="post" autocomplete="off">
      <label for="fname">First Name:</label>
      <input type="text" id="fname" name="firstname" placeholder="Enter First Name"><br><br>
      
      <label for="lname">Last Name:</label>
      <input type="text" id="lname" name="lastname" placeholder="Enter Last Name"><br><br>
      
      <input type="submit" value="Submit">
   </form>
</body>
</html>

The autocomplete="off" on the form element disables autofill for all fields within the form.

Using autocomplete="new-password"

For Chrome-specific autofill prevention, especially for password-like fields, use autocomplete="new-password". This tells the browser that the field is for a new password and should not be auto-filled.

Example

Following example shows how to disable autofill for sensitive fields

<!DOCTYPE html>
<html>
<head>
   <title>Chrome Autofill Prevention</title>
   <style>
      .form-container {
         max-width: 400px;
         margin: 20px auto;
         padding: 20px;
         border: 1px solid #ddd;
         border-radius: 8px;
      }
      input[type="text"], input[type="password"] {
         width: 100%;
         padding: 10px;
         margin: 8px 0;
         border: 1px solid #ccc;
         border-radius: 4px;
         box-sizing: border-box;
      }
      input[type="submit"] {
         background-color: #4CAF50;
         color: white;
         padding: 12px 20px;
         border: none;
         border-radius: 4px;
         cursor: pointer;
         width: 100%;
      }
   </style>
</head>
<body style="font-family: Arial, sans-serif;">
   <div class="form-container">
      <h2>Login Form</h2>
      <form action="/login.php" method="post">
         <label for="username">Username:</label>
         <input type="text" id="username" name="username" autocomplete="new-password">
         
         <label for="password">Password:</label>
         <input type="password" id="password" name="password" autocomplete="new-password">
         
         <input type="submit" value="Login">
      </form>
   </div>
</body>
</html>

The autocomplete="new-password" attribute prevents Chrome from suggesting previously saved usernames and passwords.

Comprehensive Autofill Prevention

For maximum compatibility across different browsers and Chrome versions, combine multiple techniques including hidden dummy fields and specific autocomplete values.

Example

Following example shows a comprehensive approach to disable autofill

<!DOCTYPE html>
<html>
<head>
   <title>Comprehensive Autofill Prevention</title>
   <style>
      .form-wrapper {
         max-width: 500px;
         margin: 30px auto;
         padding: 25px;
         background-color: #f9f9f9;
         border-radius: 10px;
      }
      input[type="text"], input[type="email"] {
         width: 100%;
         padding: 12px;
         margin: 10px 0;
         border: 2px solid #ddd;
         border-radius: 6px;
         box-sizing: border-box;
      }
      .submit-btn {
         background-color: #007bff;
         color: white;
         padding: 12px 24px;
         border: none;
         border-radius: 6px;
         cursor: pointer;
         font-size: 16px;
      }
      .hidden-field {
         display: none;
      }
   </style>
</head>
<body style="font-family: Arial, sans-serif;">
   <div class="form-wrapper">
      <h2>Contact Information</h2>
      <form action="/submit.php" method="post" autocomplete="off">
         <!-- Hidden dummy fields to confuse autofill -->
         <input type="text" class="hidden-field" autocomplete="false">
         <input type="password" class="hidden-field" autocomplete="false">
         
         <label for="fname">First Name:</label>
         <input type="text" id="fname" name="firstname" placeholder="Enter your first name" autocomplete="off">
         
         <label for="lname">Last Name:</label>
         <input type="text" id="lname" name="lastname" placeholder="Enter your last name" autocomplete="off">
         
         <label for="email">Email:</label>
         <input type="email" id="email" name="email" placeholder="Enter your email" autocomplete="new-password">
         
         <input type="submit" value="Submit Form" class="submit-btn">
      </form>
   </div>
</body>
</html>

This approach uses hidden dummy fields and combines autocomplete="off" with autocomplete="new-password" for different field types.

JavaScript-Based Solution

For cases where HTML attributes alone are insufficient, JavaScript can be used to clear form fields and prevent autofill suggestions.

Example

<!DOCTYPE html>
<html>
<head>
   <title>JavaScript Autofill Prevention</title>
</head>
<body style="font-family: Arial, sans-serif; padding: 20px;">
   <h2>Registration Form</h2>
   <form id="myForm" action="/register.php" method="post">
      <label for="user">Username:</label>
      <input type="text" id="user" name="username" placeholder="Enter username"><br><br>
      
      <label for="mail">Email:</label>
      <input type="email" id="mail" name="email" placeholder="Enter email"><br><br>
      
      <input type="submit" value="Register">
   </form>
   
   <script>
      // Clear form fields on page load
      window.addEventListener('load', function() {
         document.getElementById('myForm').reset();
         
         // Clear individual fields
         document.getElementById('user').value = '';
         document.getElementById('mail').value = '';
      });
      
      // Prevent autocomplete on focus
      document.querySelectorAll('input[type="text"], input[type="email"]').forEach(function(input) {
         input.addEventListener('focus', function() {
            this.setAttribute('autocomplete', 'off');
         });
      });
   </script>
</body>
</html>

The JavaScript clears form fields on page load and dynamically sets the autocomplete attribute when fields receive focus.

Method Comparison

Following table compares different methods to disable Chrome autofill

Method Effectiveness Browser Support Implementation
autocomplete="off" Moderate All browsers Simple HTML attribute
autocomplete="new-password" High for Chrome Modern browsers HTML attribute on sensitive fields
Hidden dummy fields High All browsers Additional HTML structure
JavaScript clearing Very High JavaScript-enabled browsers Requires scripting

Conclusion

To effectively disable Chrome autofill, use autocomplete="new-password" for sensitive fields and autocomplete="off" for general form elements. For maximum effectiveness, combine multiple techniques including hidden dummy fields and JavaScript-based clearing. The choice of method depends on your specific security requirements and browser compatibility needs.

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

5K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements