###実現したいこと
inputイベントでtextareaへの入力を拾って、そこにスペースが入力された場合に、スペース入力以外何もしたくないです。
###該当のソースコード
流れはこうです。スペース入力時は「実行しました」のアラートを出したくないんです。
<textarea></textarea> <script> $(document).on('input','textarea', function(){ //スペースのときは以下アラートを実行したくない alert('実行しました'); }); </script>
###試したこと
めっさいろいろ試しました。まず普通にスペースのキーコード32でreturnしましたが、できません。「実行しました」がしれっとでてきます。
$(document).on('input','textarea', function(e){ if(e.keyCode==32){ alert('スペースなので実行しません'); return; } alert('実行しました'); });
returnじゃダメかと思いpreventDefaultなるものを見つけましたが、やはりだめ!
$(document).on('input','textarea', function(e){ if(e.keyCode==32){ alert('スペースなので実行しません'); e.preventDefault(); } alert('実行しました'); });
結局みつけたのがinputでなくkeydownにし、returnを使う方法です。(preventDefaultだとスペース入力がなくなってしまうためreturnにしました。)
これならスペースのときに「実行しました」はアラートされません。よっしゃ。
$(document).on('keydown','textarea', function(e){ if(e.keyCode==32){ alert('スペースなので実行しません'); return; } alert('実行しました'); });
しかし!keydownじゃなくてinputがいいんです。(keydownって何?って感じです。)
コメントボックスとかのためにkeydonwって使っていいんでしょうか?「input keydown 違い」で検索しても1つも出てきません…
思いっきりハマってまして、どうやったらいいと思いますか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/17 18:02
2019/10/17 18:18 編集
2019/10/17 18:27