前提・実現したいこと
チャット機能を作成しています。
現在機能自体は完成しており、文字入力後Enterを押すことで送信されます。
この送信条件をEnterを押した時ではなく、ボタンクリックしたときに変更したいです。
また、送信のショートカットキーをShift+Enterに設定したいです。
恥ずかしながらjsについては勉強不足であり、
ググってもピンとくるものが見つかりませんでしたので質問させていただきます。
実現のための考え方や、検索ワードだけでもいいので教えていただけると幸いです。
該当のソースコード
html
1<input class="center-block" type="text" data-behavior="room_speaker">
coffeescript
1$(document).on 'keypress', '[data-behavior~=room_speaker]', (event) -> 2 if event.keyCode is 13 3 App.room.speak event.target.value 4 event.target.value = '' 5 event.preventDefault()
補足情報(FW/ツールのバージョンなど)
Rails 5.2.0
追記
「js ボタン 発火」などで調べました。
js
1$('button').click();
のようなものは見つかるのですが、自分のコードに当てはめてみてもうまく動かないといった状況です。
このチャット機能はActionCableを利用したリアルタイムで双方向通信を行うものなのですが、ボタンを押したときにうまくレンダリングされないです。
さらにボタンを押すと勝手にリロードされたり...。
↓が書き換えてやってみたものです。
html
1<input class="center-block" type="text" data-behavior="room_speaker"> 2<button>送信</button>
CoffeeScript
1#$(document).on 'keypress', '[data-behavior~=room_speaker]', (event) -> 2$('button').click, '[data-behavior~=room_speaker]', (event) -> 3 #if event.keyCode is 13 4 App.room.speak event.target.value 5 event.target.value = '' 6 event.preventDefault()
回答2件
あなたの回答
tips
プレビュー