VueElement-ui键盘事件失效的解决
短信预约 -IT技能 免费直播动态提醒
Element-ui 键盘事件失效
按键修饰符
vue中提供了一些按键修饰符,开发者可以直接通过按键修饰符捕捉键盘事件
Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:
.enter
.tab
.delete
(捕获“删除”和“退格”键).esc
.space
.up
.down
.left
.right
例如:.enter
<!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` -->
<input v-on:keyup.enter="submit">
但是在开发过程中会遇到不生效的情况,此时我们需要加上 .native 按键修饰符
注意:只适用于 input 框 获得焦点 时按下回车时生效,失去焦点时,此功能仍不可用
<input v-on:keyup.enter.native="submit">
如果是 **button** 按钮,那么应该把它绑定在 **document** 上:
<el-button type="primary" @keyup.enter.native="submitForm('ruleForm')">去登录</el-button>
正确代码:
// 在 created 生命周期钩子函数里写
created:function(){
// 主页添加键盘事件,不可以直接在焦点事件上添加回车
var that=this;
document.οnkeydοwn=function(event){
var key=window.event.keyCode; // 事件对象的 keyCode
if(key==13){
that.submitForm('ruleForm');
}
}
}
使用element-ui时监听登录界面全局键盘回车事件
方法一
<el-form-item prop="account">
<el-input v-on:keyup.enter.native="handleSubmit2()" style="color: #ffffff" type="text" v-model="ruleForm.account" auto-complete="off" placeholder="账号"></el-input>
</el-form-item>
如果用了element-ui的话要在后面加上native,不然被包裹不能读取到,这种写法只能在鼠标点击输入框的时候按回车才有用
方法二
在export default里面添加钩子函数
export default {
created() {
var _self = this
document.onkeydown = function(e) {
var key = window.event.keyCode
if (key === 13) {
_self.handleSubmit2()
}
}
},
beforeDestroy() {
document.onkeydown = function(e) {
var key = window.event.keyCode
if (key === 13) {
}
}
},
如果只有created函数的话那么在其他界面按回车会依然调用函数,造成错误的页面跳转,所以要离开这个界面是要取消。
这样写就可以实现在该页面键盘回车实现登录
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341