如何使用 jQuery 禁用浏览器输入字段的自动填充功能?

jqueryweb developmentfront end technology

在本文中,我们将学习如何借助 jQuery 和"input"HTML 标签提供的"autocomplete"属性禁用浏览器输入字段的自动填充功能。

浏览器自动填充功能可以显示过去在表单中输入并提交的值。默认情况下,浏览器会启用自动填充功能,因此当用户点击某个输入框时,系统会显示针对该输入值的建议,用户可以直接选择其中任何一个建议来自动填充内容。

为了禁用此行为,我们将介绍两种方法,分别利用 jQuery 库和"input"HTML 元素中的"autocomplete"属性。

方法 1

在此方法中,我们将在输入 HTML 元素上使用 jQuery 的"attr"方法,向其传递值为"off"的"autocomplete"属性,以禁用该输入元素的自动填充功能。

示例

让我们通过一个示例来验证上述方法 -

<html lang="en">
<head>
   <title>How to disable browser autofill on input fields using jQuery?</title>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
   </script>
</head>
<body>
   <h3>How to disable browser autofill on input fields using jQuery?</h3>
   <form id="form">
      <label for="email">Email (With Autocomplete)</label>
      <input type="email" name="email" id="email" />
      <br />
      <label for="firstName">First Name (Without Autocomplete)</label>
      <input type="text" name="firstName" id="firstName" autocomplete="off" />
      <br />
      <label for="lastName">Last Name (Without Autocomplete)</label>
      <input type="text" name="lastName" id="lastName" autocomplete="off" />
      <br />
      <input type="submit" value="Submit" />

      <script>
         $(document).ready(function () {
            $("#firstName").attr("autocomplete", "off");
            $("#lastName").attr("autocomplete", "off");
         });
      </script>
   </form>
</body>
</html>

方法 2

在此方法中,我们将在输入 HTML 元素上使用 jQuery 的"prop"方法,向其传递一个值为"off"的 prop"autocomplete",以禁用该输入元素的自动填充功能。

示例 1

让我们通过一个例子来验证上述方法 -

<html lang="en">
<head>
   <title>How to disable browser autofill on input fields using jQuery?</title>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
   </script>
</head>
<body>
   <h3>How to disable browser autofill on input fields using jQuery?</h3>

   <form id="form">
      <label for="email">Email (With Autocomplete)</label>
      <input type="email" name="email" id="email" />
      <br />
      <label for="firstName">First Name (Without Autocomplete)</label>
      <input type="text" name="firstName" id="firstName" autocomplete="off" />
      <br />
      <label for="lastName">Last Name (Without Autocomplete)</label>
      <input type="text" name="lastName" id="lastName" autocomplete="off" />
      <br />
      <input type="submit" value="Submit" />

      <script>
         $(document).ready(function () {
            $("#firstName").prop("autocomplete", "off");
            $("#lastName").prop("autocomplete", "off");
         });
      </script>
   </form>
</body>
</html>

示例 2

在此示例中,我们通过在电子邮件输入字段获得焦点时临时更改其 type 属性来禁用自动填充浏览器功能。

文件名:index.html

<html lang="en">
<head>
   <title>How to disable browser autofill on input fields using jQuery?</title>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
   <h3>How to disable browser autofill on input fields using jQuery?</h3>

   <form id="form">
      <label for="email">Email (With Autocomplete)</label>
      <input type="email" name="email" id="email" />
      <br />
      <label for="firstName">First Name (Without Autocomplete)</label>
      <input type="text" name="firstName" id="firstName" autocomplete="off" />
      <br />
      <label for="lastName">Last Name (Without Autocomplete)</label>
      <input type="text" name="lastName" id="lastName" autocomplete="off" />
      <br />
      <input type="submit" value="Submit" />

      <script>
         $(document).ready(function () {
            $("#firstName").prop("autocomplete", "off");
            $("#lastName").prop("autocomplete", "off");
         });

         // 附加示例:临时更改类型属性
         $("#email").focus(function () {
            $(this).prop("type", "text");
            $("[type='text']").prop("autocomplete", "off");
         });

         $("#email").blur(function () {
            $(this).prop("type", "email");
            $("[type='text']").prop("autocomplete", "on");
         });
      </script>
   </form>
</body>
</html>

总结

本文介绍了如何使用 jQuery 禁用浏览器在输入字段上的默认自动填充行为,并提供了两种不同的方法和三个示例。第一种方法是,我们使用 jQuery attr 方法在"input"标签上应用"autocomplete"属性;第二种方法是,我们使用 jQuery prop 方法在"input"标签上应用"autocomplete"属性。


相关文章