返回

Chrome 中解决 Ant Design Pro ProForm 的自动填充问题

前端

前言

在构建 Web 表单时,浏览器自动填充功能可以为用户提供便利。然而,在使用 Ant Design Pro 的 ProForm 组件时,此功能可能会出现问题,特别是在处理敏感信息(如密码或用户名)的字段时。本文将探讨如何解决此问题,确保表单安全且用户友好。

解决方法

要禁用 ProForm 特定输入字段的自动填充功能,请执行以下步骤:

  1. 导入必要的模块

    在您的 React 组件中,导入 useFormForm 模块:

    import { useForm, Form } from 'antd';
    
  2. 在 ProForm 中使用 Form.Item

    ProForm 中的 FormItem 组件替换为 Form.Item

    <Form.Item name="username" label="用户名">
      <Input />
    </Form.Item>
    
  3. 禁用自动填充

    Form.Item 中添加 autoComplete="off" 属性以禁用自动填充:

    <Form.Item name="username" label="用户名" autoComplete="off">
      <Input />
    </Form.Item>
    
  4. 使用 useForm 钩子

    使用 useForm 钩子来管理表单状态:

    const [form] = useForm();
    
  5. 设置禁用属性

    Form.Itemrules 数组中,使用 pattern 属性和正则表达式禁用自动填充:

    <Form.Item
      name="username"
      label="用户名"
      rules={[{ pattern: /.*/, message: '禁用自动填充' }]}
    >
      <Input />
    </Form.Item>
    
  6. 自定义验证信息

    提供自定义的验证消息,以告知用户自动填充已禁用:

    <Form.Item
      name="username"
      label="用户名"
      rules={[{ pattern: /.*/, message: '自动填充已禁用' }]}
    >
      <Input />
    </Form.Item>
    

通过遵循这些步骤,您可以禁用 Ant Design Pro ProForm 中特定输入字段的自动填充功能,从而确保表单的安全性并为用户提供更好的体验。