1.任意位置按enter触发:
created() {//需要在created中就直接挂好
var lett = this
document.onkeydown = function (e) {
var key = window.event.keyCode
if (key == 13) {//13是键盘上enter的映射
lett.getTrees()
}
}
},
methods: {
getTrees(){
console.log("enter事件")
}
}
2.在input中触发事件(前提:获得焦点,要原生的input)
- 写法1
<!-- 只有在 `keyCode` 是 13 时调用 `vm.submit()` -->
<input v-on:keyup.13="submit">
- 写法2
<!-- 同上,效果一致 -->
<input v-on:keyup.enter="submit">
- 写法3
<!-- 缩写语法,效果一致 -->
<input @keyup.enter="submit">
- 其他键盘映射
vue全部的按键别名:
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
注意事项:input 添加enter事件,如果在form表单里,有且只有一个input,enter后页面会刷新
解决方案:
1、去掉form
2、如果非得用表单,只要不让表单里有且只有一个文本框就OK了
3、在表单 form 后面加上一个 onsubmit 事件,返回 false,来阻止 form 提交