react 表单初始值是空,为什么浏览器还会自动填值
这可能是因为浏览器中保存了该表单以前的填写信息,例如之前用户在此处输入过内容并保存到了浏览器的表单自动填充数据库中,当用户再次访问该页面时,浏览器会自动填充已保存的内容。
如果你希望避免这种情况,可以通过在表单元素中添加 autocomplete="off"
属性来禁用浏览器的自动填充功能。例如:
<form autocomplete="off">
<!-- 表单元素 -->
</form>
另外,React 中也可以使用 defaultValue
或 value
属性来设置表单元素的初始值,而不是将其留空。例如:
<input type="text" defaultValue="Initial value" />
这样就能确保表单元素始终有一个明确的初始值,并且不会被浏览器自动填充干扰。
ant design form 组件怎么解决这个问题
在 Ant Design 中,可以通过 Form
组件的 initialValues
属性来设置表单的初始值。例如:
<Form initialValues={{ name: '', age: '' }}>
<Form.Item name="name">
<Input placeholder="Name" />
</Form.Item>
<Form.Item name="age">
<Input placeholder="Age" />
</Form.Item>
</Form>
这里将 initialValues
设置为一个空对象 { name: '', age: '' }
,可以确保表单元素始终有明确的初始值,并且不会被浏览器自动填充干扰。
另外,如果需要禁用浏览器的自动填充功能,可以在 Form
组件上设置 autoComplete="off"
属性,例如:
<Form autoComplete="off">
...
</Form>
这样就能禁用浏览器的自动填充功能,避免出现意外情况。