No.161
【Javascript】入力途中の文字列を取得する
日本語入力で未確定の文字列を取得したい
Googleの検索サジェスチョンなどでお馴染みのこの技術、自分でも使ってみたくなったので調べてみた。
入力途中の文字はATOKなどのFEPで管理されてるから難しいかな…と思ったらいつの間にかvalue
で取得できるようになっていた。一昔前はできなかったはずなんだけど、いつからできるようになったんだろう。少なくともIE8あたりからできるようになっているようだ。反省。
取得するためのイベント
イベントはonKeyUp
を利用する。
他のイベントが使えない理由は以下。
onKeyDown
やonKeyPress
では「ひとつ前の入力内容」になってしまう。onChange
は入力を確定しフォーカスが外れないとイベントが発生しない。
サンプルコード
コードは至極簡単。Jqueryを使えば数行で終わる。
$(document).ready(function() {
$('入力フォーム指定のセレクタ').keyup(function() {
text = $('入力フォーム指定のセレクタ').val();
});
});
あとは取得した値で検索したり補助したりすればOK。