在react里实现点击回车键执行事件

在网页应用里,我们搜索、提交账户名密码等等操作的过程中,不太经常会去一个个用鼠标点击提交或者执行某个按钮类型的操作。对于我个人而言,直接用回车键就很顺手了,鼠标还要去定位,很麻烦。
这几天在搭建一个前后端交互应用app的,最后完善项目一些细节的时候想要加上这个小小的便捷操作功能。
项目是用react+antd-mobile搭建的。如果是用JavaScript代码实现的话,直接在body标签里绑定onKeyDown事件,点击该事件,判断keyCode是不是等于13 - -13代表对回车键的监听。如果是,执行点击事件。代码如下:

<body onKeyDown="onkeydown()">
    <button onclick="handleClick()" value="click" />
<script>
function handleClick(){
    alert('点击了一下按钮')
}

 function onkeydown(){
 if(window.event.keyCode === 13){
            handleClick();
             }
        }
</script>
</body>

如果是在react当中,需要在按钮上绑定一个onClick事件和一个onkeyDown事件,逻辑是一样的。不同的是要在生命周期函数componentDidUpdate()中绑定一下监听。代码:

//render()内部
componentDidUpdate(){
		document.addEventListener('keydown',this.onkeydown);
	}

handleSend = ()=>{ 
//要执行的代码
	}

onkeydown = (e)=>{
		if (e.keyCode === 13) {
			this.handleSend()
		}
	}

  //这里的InputItem是antd-mobile里的一个输入框组件
<InputItem  
            ...//省略一些无关的代码
extra={
<span onClick={this.handleSend}  onKeyDown={(e)=>this.onkeydown(e)}>发送</span>
} />
  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值