我已經實現了在這裏找到的jQuery UI自動完成組合框組件:https://jqueryui.com/autocomplete/#combobox。jQueryUI自動選擇組合框事件沒有觸發
自動完成正在工作,並且當從結果值中單擊項目時,「select」事件正在成功觸發。使用鍵盤滾動並選擇一個項目也會觸發「選擇」事件。
不幸的是,我一直沒有成功獲得其他事件,比如「change」,「close」和「search」來觸發,這意味着如果一個有效值是「foo」,並且用戶只需鍵入「foo」而不點擊結果,基礎值沒有被設置。如果用戶選擇了「欄」,然後清除搜索文本 - 底層的值仍然是「欄」,情況也是如此。
查看API文檔,「更改」事件被認爲是附加到「autocompletechange」事件,但綁定到該事件也沒有效果。
$('#my-select').combobox({
change: function(event, ui){
// does not fire
console.log('change', event, ui, $(this).val());
},
close: function(event, ui){
// does not fire
console.log('close', event, ui, $(this).val());
},
search: function(event, ui){
// does not fire
console.log('search', event, ui, $(this).val());
},
select: function(event, ui){
// this will fire when a menu item is clicked
console.log('select', event, ui, $(this).val());
}
});
$('#my-select').on('autocompletechange', function(event, ui){
// does not fire
console.log('autocompletechange', event, ui, $(this).val());
});
看看它是不是在此的jsfiddle工作:https://jsfiddle.net/s56n2pzz/
我注意到,事件發射了「改變」事件有「comboboxselect」一type
和originalEvent.type
是「autocompleteselect」,然而結合像「comboboxchange」似乎也不起作用。