el-input绑定键盘按键--按键修饰符

vue怎么写键盘事件

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

<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绑定键盘按键代码以下:html

<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为咱们提供了组合修饰符的机制,可是它的使用,必须配合系统按键修饰符才能够生效。以下是一段测试代码: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>
相关文章
相关标签/搜索