当字段无效时,如何禁用 Antd 表单外的提交按钮?
How to disable Submit button outside the Antd Form when the fields are invalid?
我想在字段无效时禁用 Antd 表单外的提交按钮。请帮忙完成这个任务。
这是我的组件代码
const CreateAndEditForm = () => {
const [form] = Form.useForm();
const onSave = (e) => {
form.submit()
}
return (
<>
<PageTitle title="Add New Form">
<Space size="small">
<Button onClick={onSave} type="primary" htmlType="submit"
>
<SaveOutlined /> Save
</Button>
</Space>
</PageTitle>
<Row>
<Col span={24}>
<Form
form={form}
layout="vertical"
name="addForm"
requiredMark={false}
>
<Form.Item
name="name"
label="Name"
rules={[{ required: true, message: 'Please Enter a Name' }]}
>
<Input />
</Form.Item>
<Form.Item name="description" label="Description" rules={[{ required: true, message: 'Please Enter a Description' }]}>
<Input placeholder="Enter Description" />
</Form.Item>
</Form>
</Col>
</Row>
</>
);
}
export default CreateAndEditSchedule;
您可以在每次使用 onValuesChange
属性 更改表单时进行检查。然后,一个钩子将允许您以正确的方式呈现提交按钮。
示例:
const [formValid, setFormValid] = useState(true)
<Form
onValuesChange={() => setFormValid(form.getFieldsError().some((item) => item.errors.length > 0) }
/>
<Button
onClick={onSave}
type="primary"
htmlType="submit"
disabled={formValid}
/>
我想在字段无效时禁用 Antd 表单外的提交按钮。请帮忙完成这个任务。
这是我的组件代码
const CreateAndEditForm = () => {
const [form] = Form.useForm();
const onSave = (e) => {
form.submit()
}
return (
<>
<PageTitle title="Add New Form">
<Space size="small">
<Button onClick={onSave} type="primary" htmlType="submit"
>
<SaveOutlined /> Save
</Button>
</Space>
</PageTitle>
<Row>
<Col span={24}>
<Form
form={form}
layout="vertical"
name="addForm"
requiredMark={false}
>
<Form.Item
name="name"
label="Name"
rules={[{ required: true, message: 'Please Enter a Name' }]}
>
<Input />
</Form.Item>
<Form.Item name="description" label="Description" rules={[{ required: true, message: 'Please Enter a Description' }]}>
<Input placeholder="Enter Description" />
</Form.Item>
</Form>
</Col>
</Row>
</>
);
}
export default CreateAndEditSchedule;
您可以在每次使用 onValuesChange
属性 更改表单时进行检查。然后,一个钩子将允许您以正确的方式呈现提交按钮。
示例:
const [formValid, setFormValid] = useState(true)
<Form
onValuesChange={() => setFormValid(form.getFieldsError().some((item) => item.errors.length > 0) }
/>
<Button
onClick={onSave}
type="primary"
htmlType="submit"
disabled={formValid}
/>