我希望我的表单有两个提交按钮。
两个按钮都会使用相同的输入和表单验证,但会执行不同的任务。
export default function Formtwosubmits() {
function handlesubmit_task1(){
}
function handlesubmit_task2(){
}
return (
<>
<form onSubmit={handlesubmit_task1 if task 1 button pressed || handlesubmit_task2 if task2 button pressed } >
<Button variant="contained" color="primary" type="submit">
task 1
</Button>
<Button variant="contained" color="primary" type="submit">
task 2
</Button>
.... here input fields
</form>
</>
);
}
我不明白如何为不同的按钮传递不同的处理函数。
我尝试过:
export default function Formtwosubmits() {
function handlesubmit_task1(){
}
function handlesubmit_task2(){
}
return (
<>
<form >
<Button variant="contained" color="primary" type="submit" onClick={handlesubmit_task1}>
task 1
</Button>
<Button variant="contained" color="primary" type="submit" onClick={handlesubmit_task2}>
task 2
</Button>
.... here input fields
</form>
</>
);
}
在按钮上使用
onClick
,而且类型为submit
,但这样不会检查表单验证(例如必填等),而使用onSubmit
可以看到表单验证被检查。如何使用
onClick
触发表单验证。这可能对我有所帮助。
function handlesubmit_task1(event) { }
更改为const onSubmitA = async (data) => { }
,并将function handlesubmit_task2(event) { }
更改为const onSubmitB = async (data) => { }
,会怎样呢?我看到你使用了event
和e
,但如果我们传递异步数据,例如async (data)
,会发生什么? - uberrebu