如何防止回车键触发提交
How to prevent enter key triggering submit
我在 React
应用程序中使用 Formik
作为一个小表格。
方法 handleSubmit
在用户按下回车键时触发。
有没有办法防止这种触发?
我在 formik 文档中没有找到任何内容...
谢谢。
您可以像这样添加 onKeyDown
处理程序:
/**
* Stop enter submitting the form.
* @param keyEvent Event triggered when the user presses a key.
*/
function onKeyDown(keyEvent) {
if ((keyEvent.charCode || keyEvent.keyCode) === 13) {
keyEvent.preventDefault();
}
}
/**
* Sample form component.
*/
function Example() {
return (
<Formik initialValues={{ name: "" }} onSubmit={() => console.log("Submit")}>
<Form onKeyDown={onKeyDown}>
<div>
<label htmlFor="name">Name</label>
<Field id="name" name="name" type="text" />
</div>
<button type="submit">Submit</button>
</Form>
</Formik>
);
}
参见 CodeSandbox example here。
我在 React
应用程序中使用 Formik
作为一个小表格。
方法 handleSubmit
在用户按下回车键时触发。
有没有办法防止这种触发? 我在 formik 文档中没有找到任何内容...
谢谢。
您可以像这样添加 onKeyDown
处理程序:
/**
* Stop enter submitting the form.
* @param keyEvent Event triggered when the user presses a key.
*/
function onKeyDown(keyEvent) {
if ((keyEvent.charCode || keyEvent.keyCode) === 13) {
keyEvent.preventDefault();
}
}
/**
* Sample form component.
*/
function Example() {
return (
<Formik initialValues={{ name: "" }} onSubmit={() => console.log("Submit")}>
<Form onKeyDown={onKeyDown}>
<div>
<label htmlFor="name">Name</label>
<Field id="name" name="name" type="text" />
</div>
<button type="submit">Submit</button>
</Form>
</Formik>
);
}
参见 CodeSandbox example here。