Javascript 使用enter键登录
我的应用程序中有登录表单。目前我有一个登录按钮来登录。单击此登录按钮时,我将用户名和密码值发送到后端api,该api将生成一个令牌,并允许用户在经过身份验证后移动到下一个屏幕。当我按下回车键时,我想要相同的功能。我已经寻找了很多来源,但我需要一个安全的方式。我该怎么做呢。这是我的表单组件Javascript 使用enter键登录,javascript,reactjs,Javascript,Reactjs,我的应用程序中有登录表单。目前我有一个登录按钮来登录。单击此登录按钮时,我将用户名和密码值发送到后端api,该api将生成一个令牌,并允许用户在经过身份验证后移动到下一个屏幕。当我按下回车键时,我想要相同的功能。我已经寻找了很多来源,但我需要一个安全的方式。我该怎么做呢。这是我的表单组件 render(){ return ( <div className="LoginPage"> <div className="login-pag
render(){
return (
<div className="LoginPage">
<div className="login-page">
<div className="form">
<form className="login-form">
<input id="username" type="username" placeholder="username"/>
<input id="password" type="password" placeholder="password"/>
<p className="message">Not registered? <a href="#">Request Username and Password</a></p>
</form>
<button onClick={this.handleLoginButtonClick.bind(this)}>login</button>
</div>
</div>
</div>
);
}
render(){
返回(
是否未注册
登录
);
}
使用带有输入
字段的onKeyDown
事件,并在该方法中
检查用户按下的键的keycode
,回车键的键代码为13
,因此每当他按下回车
,调用与您在按钮上调用的方法相同的方法
点击,这样写:
render(){
return (
<div className="LoginPage">
<div className="login-page">
<div className="form">
<form className="login-form">
<input id="username" type="username" placeholder="username" onKeyDown={this.onKeyDown.bind(this)}/>
<input id="password" type="password" placeholder="password" onKeyDown={this.onKeyDown.bind(this)}/>
<p className="message">Not registered? <a href="#">Request Username and Password</a></p>
</form>
<button onClick={this.handleLoginButtonClick.bind(this)}>login</button>
</div>
</div>
</div>
);
}
onKeyDown(e){
if(e.keyCode == 13){
/*write the logic here*/
}
}
render(){
返回(
是否未注册
登录
);
}
onKeyDown(e){
如果(e.keyCode==13){
/*把逻辑写在这里*/
}
}
如果用户将字段留空,则需要使用ref
聚焦该字段。
检查jsfiddle
以了解聚焦字段的工作示例:使用onKeyDown
事件和输入
字段,并在此方法中检查用户按下的键
的keycode
,因此每当按下Enter
,Enter键的代码都是13,调用与您在按钮上调用的方法相同的方法
render(){
return (
<div className="LoginPage">
<div className="login-page">
<div className="form">
<form className="login-form">
<input id="username" type="username" placeholder="username" onKeyDown={this.onKeyDown.bind(this)}/>
<input id="password" type="password" placeholder="password" onKeyDown={this.onKeyDown.bind(this)}/>
<p className="message">Not registered? <a href="#">Request Username and Password</a></p>
</form>
<button onClick={this.handleLoginButtonClick.bind(this)}>login</button>
</div>
</div>
</div>
);
}
onKeyDown(e){
if(e.keyCode == 13){
/*write the logic here*/
}
}
render(){
返回(
是否未注册
登录
);
}
onKeyDown(e){
如果(e.keyCode==13){
/*把逻辑写在这里*/
}
}
如果用户将字段留空,则需要使用ref
聚焦该字段。
检查jsfiddle
以了解聚焦字段的工作示例:您的解决方案是否有效?它有什么问题?您需要将按键事件绑定到表单或其输入元素。请参见此答案。我如何仅使用javascript实现它?另外,如果用户只是输入用户名而不是密码,然后点击回车键,那么密码字段应该集中精力要求他输入密码。您能为我提供一些建议吗?是的,请使用上述url ans中的事件并检查您的输入值,如果没有值,请关注该元素。您只需将onSubmit
属性添加到表单中,如
,然后将按钮更改为提交类型。然后,您必须在handleLoginButtonClick
中使用preventDefault()
,您的解决方案是否有效?它有什么问题?您需要将按键事件绑定到表单或其输入元素。请参见此答案。我如何仅使用javascript实现它?另外,如果用户只是输入用户名而不是密码,然后点击回车键,那么密码字段应该集中精力要求他输入密码。您能为我提供一些建议吗?是的,请使用上述url ans中的事件并检查您的输入值,如果没有值,请关注该元素。您只需将onSubmit
属性添加到表单中,如
,然后将按钮更改为提交类型。然后,您必须在handleLoginButtonClick
中使用preventDefault()
,如果用户在字段中没有任何内容,如何使字段聚焦?检查jsfiddle
以获取完整的工作示例,同时聚焦部分,请将ans标记为正确,它已解决您的问题:)如果您在这方面需要任何帮助,请告诉我:)使用autoFocus
属性默认聚焦任何字段:)检查此项:名称字段是自动聚焦的。如果用户在字段中没有任何内容,我如何使字段聚焦?检查jsfiddle
,了解完整的工作示例,对焦部分,请将ans标记为正确,它解决了您的问题:)如果您在这方面需要任何帮助,请告诉我:)默认情况下使用自动对焦属性对焦任何字段:)选中此项:名称字段是自动对焦的。