Bootstrap Typeaheadの日本語入力対応

2013/02/25 (2016/09/14更新) タグ: ,
  • このエントリーをはてなブックマークに追加

Bootstrapに入っているTypeheadは、フォームに入力している途中で、候補文字が出てきて補完してくれる便利な機能です。こんな機能をかんたんに導入することができて、最高なんですが、日本語入力に対応していないという致命的欠点があります。

SPONSOR

Typeaheadが日本で使えない

まずはじめに、英語だと文字の変換なんてありませんから、英単語を入力している途中で候補が出てきて、矢印キーで選択してエンターというのが想定しているBootstrapが想定している流れです。

しかし、日本語は変換してエンターという操作があります。このせいで、変換候補を選んでエンターを押した時点でTypeaheadも選択されたことになってしまうのです。

ちなみにオンライン見積書・請求書発行ツール「CLPRO」でも、項目入力時に使っていますので、日本語対応の修正を行いました。
clpro

Typeaheadを修正

bootstrap.jsを少し変更するだけで、対応出来ました。ちょうど1969行目あたり。

  , render: function (items) {
      var that = this

      items = $(items).map(function (i, item) {
        i = $(that.options.item).attr('data-value', item)
        i.find('a').html(that.highlighter(item))
        return i[0]
      })

      //items.first().addClass('active')
      this.$menu.html(items)
      return this
    }

items.first().addClass(‘active’)をコメントアウトすれば、変換した後のエンターは無効になります。

この記事もおすすめ
記事を書いている中の人
入江慎吾
デザインも開発もやっているフリーのエンジニアです。目標はプロダクトだけで生きていくこと。そのために学んだこと、実践したことをブログで発信中。朝5時に起きて午前中だけ働いています。午後からは読書と勉強にあてて自己スキルをのばし、さらに生産性を高めたいと考えてます。(もっと詳しいプロフィール
この記事をシェアする
  • このエントリーをはてなブックマークに追加
メールマガジンで新着記事をフォロー

 

イリテクの最新情報をチェック!
  • follow us in feedly
    RSSで最新記事を読む
イリテクで開発したプロダクト
SPONSOR
こちらの記事もおすすめです