[英]Submit a form using Enter key with "@material-ui/core/Button" in react.js
這是我在渲染方法中的表單,用於用戶登錄。
<form onSubmit={this.handleSubmit}>
<Avatar className={classes.avatar}>
<LockOutlinedIcon />
</Avatar>
<Typography component="h1" variant="h5">
Sign in
</Typography>
<TextField variant="outlined" margin="normal" fullWidth id="email"
label="Email Address" name="email" onChange={this.handleEmailChange}
/>
<TextField variant="outlined" margin="normal" fullWidth
name="password" onChange={this.handlePasswordChange}
/>
{loginError && (
<Typography component="p" className={classes.errorText}>
Incorrect email or password.
</Typography>
)}
<Button type="button" fullWidth variant="contained" color="primary"
className={classes.submit} onClick={this.handleSubmit}
>
Sign In
</Button>
</form>
以下是我的句柄提交方法。
handleSubmit = () => {
const { dispatch } = this.props;
const { email, password } = this.state;
dispatch(loginUser(email, password));
};
如何按Enter
鍵提交表單? 我正在使用標准的 Material UI Button
組件。
通過制作"submit"
類型的按鈕來嘗試以下操作。 這應該可以使用 enter 鍵啟用表單提交:
<Button type="submit" fullWidth variant="contained" color="primary" className={classes.submit}>
Sign In
</Button>
同樣使用"submit"
類型,您不需要onClick
,因為默認情況下單擊提交按鈕會觸發表單submit
事件。
對於按鈕 Ex,您必須使用type="submit"
:
<Button
type="submit"
fullWidth
variant="contained"
color="primary"
className={classes.submit}
>
Sign In
</Button>
在Button
中添加type=submit
對我不起作用。 您可以在此處嘗試使用此解決方案。 它使用了一個在 React 中工作的UseEffect
鈎子。
使用捕鼠器
https://www.npmjs.com/package/mousetrap
https://www.npmjs.com/package/@types/mousetrap
(是的,我知道,不幸的是,當您使用 typescript 時,您必須安裝基本模塊以外的類型)
import {bind} from 'mousetrap';
const handleSubmit = async () => {
// submit func here
};
bind(['enter', 'return'], handleSubmit);
使用捕鼠器的其他示例,可能用於其他目的:
bind(['command+k', 'ctrl+k'], function(e) {
highlight([11, 12, 13, 14]);
return false;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.