vue中el-input绑定键盘按键(按键修饰符)

vue怎么写键盘事件

vue允许将按键值作为修饰符来使用,如监听回车事件,有两种写法,如下代码:

<input type="text" @keyup.13="console.log($event)"></input>
<input type="text" @keyup.enter="console.log($event)"></input>

但要注意的是:当我们在在el-input采用如上两种写法时,他是不生效的。el-input监听不到键盘事件,原因是element-ui是封装组件,所以el标签属于自定义标签,因此触发不了键盘事件。

解决办法:加上.native原生事件修饰符即可。.native:监听组件根元素的原生事件,主要作用是给自定义的组件添加原生事件。
vue与elementUI中给el-input绑定键盘按键代码如下:

<el-input placeholder="店铺名称" clearable v-model="queryObj.shopname" @keyup.enter.native="query">
 <template slot="prepend">店铺名称</template>
</el-input>

常用按键修饰符

别名修饰符 键值修饰符 对应按键
.delete .8/.46 回格/删除
.tab .9 制表
.enter .13 回车
.esc .27 退出
.space .32 空格
.left .37
.up .38
.right .39
.down .40

鼠标按键修饰符

别名修饰符 可用版本 对应按键
.left 2.2.0以上 左键
.right 2.2.0以上 右键
.middle 2.2.0以上 中键

系统按键修饰符

别名修饰符 可用版本 对应按键
.ctrl 2.1.0以上 Ctrl键
.alt 2.1.0以上 Alt键
.shift 2.1.0以上 Shift键
.meta 2.1.0以上 meta键(Windows系统上为田键)

关于组合修饰符的使用:

vue为我们提供了组合修饰符的机制,但是它的使用,必须配合系统按键修饰符才可以生效。如下是一段测试代码:

<!DOCTYPE html>
<html>
<head>
 <title></title>
</head>
<body>
<div id="app">
 <button @click.ctrl="ctrlClick" @click="together">带上ctrl来找我玩呀</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.min.js"></script>
<script type="text/javascript">
 let vm = new Vue({
 el: '#app',
 methods: {
  together(event) {
  if (!event.ctrlKey) {
   console.log('------------- 我是可爱的分割线呀 -------------')
   console.log('$event.ctrlKey:', event.ctrlKey)
  } else {
   console.log('欢迎呀!')
  }
  },
  ctrlClick(event) {
  console.log('------------- 我是可爱的分割线呀 -------------')
  console.log('$event.ctrlKey:', event.ctrlKey)
  console.log('Ctrl你来了呀!')
  }
 }
 })
</script>
</body>
</html>

到此这篇关于vue中el-input绑定键盘按键(按键修饰符)的文章就介绍到这了,更多相关el-input绑定键盘按键内容请搜索来客网以前的文章或继续浏览下面的相关文章希望大家以后多多支持来客网!