1

ここでの問題は、jquery-ui のオートコンプリート コンボボックスに加えられた変更をトリガーしたいということです。ところで、これはコンボボックスJquery UI Combobox です

ここに私がしようとしているもののフィドルがあります: Js fiddle

よろしくお願いします。

4

4 に答える 4

1

このコードを確認してください。
特にif条件の一部です。デモ
を参照してください。

             this.selected = valid = true;
                            return false;
                        }
                    });
                    if (!valid) {
                        // remove invalid value, as it didn't match anything
                        $(this).val("");
                        select.val("");
                        input.data("autocomplete").term = "";
                        return false;
                    }
                }else{
                  alert(ui.item.value);}
            }
        })
于 2012-08-13T10:42:24.767 に答える
1

また、変更イベントのトリガーを処理できるように、追加のイベント処理が必要でした。これは、Enter キーを押したとき、または入力のフォーカスを失ったとき (タブまたはマウス クリックを押したとき) に "selected" が処理されないためです。

そのため、最新バージョンの jQuery Autocomplete スクリプトを使用して、次のソリューションを作成しました: DEMO

  • Enter:メニューが表示されている場合、最初の項目を選択します
  • フォーカスが失われました:部分一致が見つかりませんメッセージをトリガーし、エントリ (jQuery UI) をクリアしますが、完全に入力された回答はその値を「選択」します (大文字と小文字は区別されません)。

Change メソッドの利用方法:

$("#combobox").combobox({
    selected: function (event, ui) {
        $("#output").text("Selected Event >>> " + $("#combobox").val());
    }
})
.change(function (e) {
    $("#output").text("Change Event >>> " + $("#combobox").val());
});

うまくいけば、これは、「選択」されたままになっているギャップを補うために追加の変更イベント機能を必要とする他の人に役立つことを願っています。

于 2012-12-17T20:49:29.453 に答える
1

私は追加します

focus:function(event, ui){
    alert(ui.item.value);
},

あなたのコードでは、ここに例がありますhttp://jsfiddle.net/sechou/SuNMV/4/

focus : フォーカスが(選択ではなく)項目に移動する前に、ui.item はフォーカスされた項目を参照します。フォーカスのデフォルト アクションは、テキスト フィールドの値をフォーカスされた項目の値に置き換えることですが、フォーカス イベントがキーボード インタラクションによってトリガーされた場合のみです。このイベントをキャンセルすると、値が更新されなくなりますが、メニュー項目がフォーカスされることは妨げられません。

于 2012-08-13T10:22:22.223 に答える
0

最も簡単な方法:

$( "select" ).combobox({ 
  select: function (event, ui) {
    $(this).trigger("change"); 
  }
});
于 2013-10-13T22:19:34.860 に答える