ここでの問題は、jquery-ui のオートコンプリート コンボボックスに加えられた変更をトリガーしたいということです。ところで、これはコンボボックスJquery UI Combobox です
ここに私がしようとしているもののフィドルがあります: Js fiddle
よろしくお願いします。
ここでの問題は、jquery-ui のオートコンプリート コンボボックスに加えられた変更をトリガーしたいということです。ところで、これはコンボボックスJquery UI Combobox です
ここに私がしようとしているもののフィドルがあります: Js fiddle
よろしくお願いします。
このコードを確認してください。
特に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);}
}
})
また、変更イベントのトリガーを処理できるように、追加のイベント処理が必要でした。これは、Enter キーを押したとき、または入力のフォーカスを失ったとき (タブまたはマウス クリックを押したとき) に "selected" が処理されないためです。
そのため、最新バージョンの jQuery Autocomplete スクリプトを使用して、次のソリューションを作成しました: DEMO
Change メソッドの利用方法:
$("#combobox").combobox({
selected: function (event, ui) {
$("#output").text("Selected Event >>> " + $("#combobox").val());
}
})
.change(function (e) {
$("#output").text("Change Event >>> " + $("#combobox").val());
});
うまくいけば、これは、「選択」されたままになっているギャップを補うために追加の変更イベント機能を必要とする他の人に役立つことを願っています。
私は追加します
focus:function(event, ui){
alert(ui.item.value);
},
あなたのコードでは、ここに例がありますhttp://jsfiddle.net/sechou/SuNMV/4/
focus : フォーカスが(選択ではなく)項目に移動する前に、ui.item はフォーカスされた項目を参照します。フォーカスのデフォルト アクションは、テキスト フィールドの値をフォーカスされた項目の値に置き換えることですが、フォーカス イベントがキーボード インタラクションによってトリガーされた場合のみです。このイベントをキャンセルすると、値が更新されなくなりますが、メニュー項目がフォーカスされることは妨げられません。
最も簡単な方法:
$( "select" ).combobox({
select: function (event, ui) {
$(this).trigger("change");
}
});