Javascript 使用enter键登录

Javascript 使用enter键登录,javascript,reactjs,Javascript,Reactjs,我的应用程序中有登录表单。目前我有一个登录按钮来登录。单击此登录按钮时,我将用户名和密码值发送到后端api,该api将生成一个令牌,并允许用户在经过身份验证后移动到下一个屏幕。当我按下回车键时,我想要相同的功能。我已经寻找了很多来源,但我需要一个安全的方式。我该怎么做呢。这是我的表单组件 render(){ return ( <div className="LoginPage"> <div className="login-pag

我的应用程序中有登录表单。目前我有一个登录按钮来登录。单击此登录按钮时,我将用户名和密码值发送到后端api,该api将生成一个令牌,并允许用户在经过身份验证后移动到下一个屏幕。当我按下回车键时,我想要相同的功能。我已经寻找了很多来源,但我需要一个安全的方式。我该怎么做呢。这是我的表单组件

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标记为正确,它解决了您的问题:)如果您在这方面需要任何帮助,请告诉我:)默认情况下使用
自动对焦
属性对焦任何字段:)选中此项:名称字段是自动对焦的。