質問: htmlの``で変換キーを押しても、ひらがなが漢字などに変換できないようにしたいのですが、どうすればいいのでしょうか? Space key なら Keycodeをつかってやればいいのですが、変換キーはどうすればいいのでしょうか?
回答: あまり良い方法ではないかも知れませんが、このようにした所それらしく動きました。 ``` // input要素を取得する var input = document.getElementById("input"); // input要素にイベントリスナを追加する input.addEventListener("keyup", function(){ // inputの値が[ぁ-ん]のみで構成されている、つまり全てひらがなであれば if( this.value.match(/^[ぁ-ん]+$/) ){ // フォーカスを奪って this.blur(); // フォーカスを返す this.focus(); } }); ``` `input`の入力値をみて、それが全てひらがなであれば、フォーカスを奪って返すことで一瞬フォーカスが離れるので、その時に入力値が確定されます。 全てひらがなというのは、例えば"漢字"と打つ時に、最初の"k"の状態では確定しないためです。 "か"になって初めて確定するということですね。 `addEventListener`で指定している`keyup`はキーを離した時です。 ただこの方法だと、コピペで漢字を貼り付けられた時などには対処できませんね。 リスナで値にひらがな以外が含まれていたらそれを除外するような処理が必要かもしれません。 お役に立てれば幸いです。 --追記 Google Chrome 44.0.2403.155 m で動作確認をしました。