No.161


【Javascript】入力途中の文字列を取得する

日本語入力で未確定の文字列を取得したい

 Googleの検索サジェスチョンなどでお馴染みのこの技術、自分でも使ってみたくなったので調べてみた。

 入力途中の文字はATOKなどのFEPで管理されてるから難しいかな…と思ったらいつの間にかvalueで取得できるようになっていた。一昔前はできなかったはずなんだけど、いつからできるようになったんだろう。少なくともIE8あたりからできるようになっているようだ。反省。


取得するためのイベント

 イベントはonKeyUpを利用する。
 他のイベントが使えない理由は以下。

  • onKeyDownonKeyPressでは「ひとつ前の入力内容」になってしまう。
  • onChangeは入力を確定しフォーカスが外れないとイベントが発生しない。

サンプルコード

 コードは至極簡単。Jqueryを使えば数行で終わる。

$(document).ready(function() {
  $('入力フォーム指定のセレクタ').keyup(function() {
    text = $('入力フォーム指定のセレクタ').val();
  });
});

 あとは取得した値で検索したり補助したりすればOK。