天天看點

vue input綁定ctrl+enter鍵盤事件,親測絕對有用!

最近項目需要im線上聊天功能,消息發送enter鍵,換行ctrl+enter,找了很多資料才解決,解決問題的小夥伴可以點個贊,感謝感謝:

直接看代碼;

<el-input
 @keydown.enter.native="keyDown"
  type="textarea"
  :rows="4"
  class="text-input"
  placeholder="請輸入内容"
  v-model="textarea">
</el-input>
           

我用的element元件,這個不影響,隻要是vue項目都這些寫;

@keydown.enter.native=“keyDown”

如果上面方法不行可以把native去掉試試

@keydown.enter=“keyDown”

然後在js裡面注冊這個方法:

keyDown(e) {
	if(e.ctrlKey && e.keyCode==13) {   //使用者點選了ctrl+enter觸發
	  this.textarea += '\n';
	}else { //使用者點選了enter觸發
	  this.sendMessage();
	}  
},
           
這樣就完美解決了,如果你用的到alt或者其他快捷鍵的話,吧js裡面的ctrlKey換成altKey就可以了,其他同理

繼續閱讀