5 回答
TA贡献1843条经验 获得超7个赞
在你的组件中存储antd Form 的ref (用于访问提交方法)
添加
onKeyUp
到表格tabIndex={0}
如果你想 onKeyUp 在整个表单上工作而不仅仅是输入,你需要添加到表单输入 keyCode 为 13,因此您需要像这样处理 KeyUp:
const SimpleForm = () => {
const ref = useRef();
function handleKeyUp(event) {
// Enter
if (event.keyCode === 13) {
ref.current.submit();
}
}
return (
<Form ref={ref} onKeyUp={handleKeyUp} tabIndex={0}>
<Form.Item
label="Username"
name="username"
rules={[
{
required: true,
message: "Please input your username!"
}
]}
>
<Input />
</Form.Item>
<Form.Item
label="Password"
name="password"
rules={[
{
required: true,
message: "Please input your password!"
}
]}
>
<Input.Password />
</Form.Item>
</Form>
);
};
或者您可以像这样在窗口上收听 keyup 事件:
const SimpleForm = () => {
const ref = useRef();
function handleKeyUp(event) {
if (event.keyCode === 13) {
ref.current.submit();
}
}
useEffect(() => {
window.addEventListener("keyup", handleKeyUp);
return () => {
window.removeEventListener("keyup", handleKeyUp);
};
}, []);
return (
<Form ref={ref}>
.
.
.
);
};
TA贡献1809条经验 获得超8个赞
onSubmit在 antd v4 中不可用。改用onKeyPress。
<Form
form={form}
onFinish={console.log}
onKeyPress={(e) => {
if (e.key === "Enter") {
form.submit();
}
}}
>
//
</Form>
TA贡献1877条经验 获得超1个赞
既然你提到了 React,下面的代码应该在按下时提交表单enter
。诀窍是将 onSubmit 属性添加到表单标签。
export default class Module extends React.Component {
constructor() {
super();
this.state = {}
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(e) {
e.preventDefault();
//your code
}
render() {
return (
<form onSubmit={this.handleSubmit}>
//form code
</form>
);
}
}
TA贡献2019条经验 获得超9个赞
export default class Module extends React.Component {
constructor() {
super();
this.state = {}
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(e) {
e.preventDefault();
//your code
}
render() {
return (
<form onSubmit={this.handleSubmit}>
//form code
// Hide this button using CSS
<button type="submit">Submit</button>
</form>
);
}
也许这会奏效。默认情况下,提交按钮在 catches enter键中,所以你不必做任何激进的事情,只需在表单中放置一个提交按钮并隐藏该按钮,在回车键上它会自动提交表单。
TA贡献1772条经验 获得超8个赞
你应该在你的输入中使用 onKeyUp 道具
const handleSubmit = () => {
// function body for submitting data
}
<input
onKeyUp={(ev) => {
if (ev.keyCode === 13) {
handleSubmit();
}
}}
/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
添加回答
举报