

htmlの`<input type="text">`で変換キーを押しても、ひらがなが漢字などに変換できないようにしたいのですが、どうすればいいのでしょうか?  
Space key なら Keycodeをつかってやればいいのですが、変換キーはどうすればいいのでしょうか?


CC BY-SA 3.0
2015-06-06T05:23:03.967
11032
2015-08-18T19:25:18.087
5246
question
javascript html
<input type="text">で漢字変換を無効にする


あまり良い方法ではないかも知れませんが、このようにした所それらしく動きました。

[code]

    // input要素を取得する
    var input = document.getElementById("input");
    
    // input要素にイベントリスナを追加する
    input.addEventListener("keyup", function(){
        // inputの値が[ぁ-ん]のみで構成されている、つまり全てひらがなであれば
        if( this.value.match(/^[ぁ-ん]+$/) ){
            // フォーカスを奪って
            this.blur();
            // フォーカスを返す
            this.focus();
        }
    });
    
[/code]

`input`の入力値をみて、それが全てひらがなであれば、フォーカスを奪って返すことで一瞬フォーカスが離れるので、その時に入力値が確定されます。  
全てひらがなというのは、例えば"漢字"と打つ時に、最初の"ｋ"の状態では確定しないためです。  
"か"になって初めて確定するということですね。  
`addEventListener`で指定している`keyup`はキーを離した時です。

ただこの方法だと、コピペで漢字を貼り付けられた時などには対処できませんね。  
リスナで値にひらがな以外が含まれていたらそれを除外するような処理が必要かもしれません。

お役に立てれば幸いです。

\--追記  
Google Chrome 44.0.2403.155 m で動作確認をしました。


CC BY-SA 3.0
2015-08-18T19:10:40.537
14602
2015-08-18T19:25:18.087
2015-08-18T19:25:18.087
10963
10963
11032
answer