- 有这样的情况,在dialog框中有一个div,div中有一个input框和一个按钮,input框中输入数据后,点击按钮会请求后台数据。
- 如果想按enter键也可以请求后台数据,可以在div加上enter事件后,但结果有两种情况
- 若鼠标焦点在input中的时候enter事件会生效
- 若鼠标焦点在input之外enter事件没有反应
- 第一种情况我的理解是一个事件冒泡,input上没有绑定enter事件,但会向父级标签传播这个事件,刚好div上定义了enter事件,因此得到执行;
- 第二种情况可以在created周期函数中在ducument上设置全局的keyup事件
<div @keyup.enter="search">
<el-input></el-input>
<el-button type='primary' @click="search">查询</el-button>
</div>
created(){
const self = this
document.onkeyup = function(e){
if(e.key == 'Enter'){
self.search()
}
}
}
本来想用e.keyCode,但看代码提示已经废弃了