【Vue.js】特定のキーを押した際に入力欄を一括削除したい
<body> <div id="app"> <form> <input type="text" @keyup.27="clear" v-model="name"> </form> </div> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <script src="template.js" charset="utf-8"></script>
var app = new Vue({ el: '#app', data:{ name:'ゲスト', }, methods: { clear: function() { return this.name = ''; } } });
<input type="text" @keyup.27="clear" v-model="name">
の.27という修飾子は、Escキーのキーコードに当たる。これを他のキーコードに変えることによって、指定のキーを押すことで同様の効果を得られます。
ちなみに、以下のように書き換え可能。
<input type="text" @keyup.esc="clear" v-model="name">
特定のキーについてはエイリアス(別名)があるため、そちらを修飾子に用いることができます。
他のキーコードのエイリアスは…
- .enter
- .tab
- .delete
- .exc
- .space
- .up
- .down
- .left
- .right
となります。