boots reapについては、typeaeadのbugを自動的に提示します.


bootstrapはオープンソースのフロントエンド開発フレームであり、多くのプラグインが開発者に提供されています.もちろん、多くのテンプレートやスタイルも含まれています.
    この間、自動完成の研究をしていたら、bootstrapの自動提示の中の一つの問題を発見しました.この問題について具体的に解決してください.
まず声明します.会社のプロジェクトではbootstrap 2を使っています.
   中国語入力法では、typeaeadとして宣言された入力ボックスに入力すると、イベントキーを押した時に、既存の内容に対して自動的にヒントを与えません.
    主要なこの時に入力法は私達のボタンを捉えて中国語の入力のいくつかヒントが現れることができて、例えば捜犬のあれらの語句のヒントを探します.もちろん、私たちの自動完成をブロックするためのプロンプトボックスが表示されるかもしれません.もし入力が正しいなら、enterキーを押す時、私達の理想的な状態はヒントが現れるべきです.しかし、この時はありません.私達はbootstrapを調べます.typeaheadのソースコードについては、このようなコードを発見しました.
  ボタンを押す方法は以下の通りです.
 keyup: function (e) {
    switch (e.keyCode) {
        case 40:
        case 38:
        case 16:
        case 17:
        case 18:
            break;
        case 9:
        case 13:
            if (!this.shown)return;
            this.select();
            break;
        case 27:
            if (!this.shown)return;
            this.hide();
            break;
        default:
            this.lookup()
    }
    e.stopPropagation(), e.preventDefault()
}
      これを見ると、イベントがここで実行されていますが、私たちのtypeaeadプロンプトのボックスには私たちが欲しい結果が選択されていません.この時に選択を実行するのは明らかに私たちが望んだ結果ではありません.
      以下は私が修正したコードです.
keyup: function (e) {
    switch (e.keyCode) {
        case 40:
        case 38:
        case 16:
        case 17:
        case 18:
            break;
        case 9:
        //case 13:
            if (!this.shown)return;
            this.select();
            break;
        case 27:
            if (!this.shown)return;
            this.hide();
            break;
        case 13:
            if (!this.shown) {this.lookup();return;}
            this.select();
            break;
        default:
            this.lookup()
    }
    e.stopPropagation(), e.preventDefault()
}
    コードを見たら、私達はベンダーの元の処理を抜きました.私達を処理するためのサポートが追加されました.主なロジックは、ヒントボックスが表示されていない場合、以下のデータを探しに行きます.ヒントボックスを表示します.表示されたら、私たちは選択イベントを実行します.
    問題を解決しました.この問題は主にbootstrapの開発者が中国語入力のイベントに直面していないかもしれませんので、この問題を発見できませんでした.あるいは、bootstrap 3の時に修復されました.