【发布时间】:2021-08-23 03:17:17
【问题描述】:
当我按下“enter”键时,如何移除任一输入框的焦点?
我有这个代码:
import React, { useState } from "react";
import "antd/dist/antd.css";
import { Form, Input, Button, Card } from "antd";
function Login() {
const [loadings, setloadings] = useState(false);
const [disabledLoading, setDisabledLoading] = useState(false);
function changeloading() {
setloadings(true);
setDisabledLoading(true);
setTimeout(() => {
setloadings(false);
}, 1630);
}
function passwordEnterPress(e) {
e.target.blur();
}
return (
<div>
<Card className="home-card">
<Form>
<Form.Item name="Username">
<Input name="username" onPressEnter={passwordEnterPress} />
</Form.Item>
<Form.Item name="Password">
<Input.Password name="password" onPressEnter={passwordEnterPress} />
</Form.Item>
<Form.Item>
<Button
type="primary"
htmlType="submit"
onClick={() => changeloading()}
>
Log in
</Button>
</Form.Item>
</Form>
</Card>
</div>
);
}
export default Login;
EDIT 根据文档 link,我可以调用 blur 函数来移除焦点,但我不知道如何在提交时触发该函数并定位输入字段。
如果我选择任一输入,它将被聚焦;但是,当我按下“enter”提交表单时,焦点不会消失。 我希望每当我按下提交表单的“enter”键时焦点消失。
值得一提的是,我不想强行覆盖焦点边框。我只希望当我单击登录按钮(已经在工作)或按“输入”键(这个问题的全部要点)时边框消失。
提前致谢。
【问题讨论】:
-
我认为不是使用按钮的
onClick处理登录。您应该以onSubmit的形式处理它
标签: javascript reactjs antd