JQuery UI - 如何将更改事件绑定(bind)到组合框?

标签 jquery user-interface autocomplete combobox onchange

所以问题是自动完成组合框在没有更改事件的情况下初始化。我想稍后绑定(bind)它,但文档似乎对组合框不够充分。

无效的代码:

$('#select').combobox();
...
$('#select').bind( "autocompletechange", function(event, ui) {
  alert('changed');
});

我猜测事件标签是错误的,因为组合框中的内联标签被“选择”,例如$('#select').combobox({selected : function(ev,ui) {alert('selected'); }}); 有效,但我不能那样使用它。

那么你知道该事件的正确标签是什么吗?我只是在文档中找不到它。

编辑:实际上我找到了我的问题所在。 $('#select').combobox(); 只是将选择映射到自动完成输入。它创建的输入具有类似于 id='select-autocomplete' 的 id,因此要将事件绑定(bind)到该组合框 - 选择器应该位于此输入上,而不是选择上。所以工作代码:

$('#select').combobox();
    ...
$('#select-autocomplete').bind( "autocompletechange", function(event, ui) {
    alert('changed');
});

最佳答案

因此,我找到了比将事件绑定(bind)到创建的 .ui-combobox-input 更清晰的解决方案。您应该在组合框代码中找到初始化输入的位置,并找到选择参数。 修改这部分代码:

select: function( event, ui ) {
    ui.item.option.selected = true;
    that._trigger( "selected", event, {
        item: ui.item.option
    });
    that.element.trigger('change');// here is the trick
},

关于JQuery UI - 如何将更改事件绑定(bind)到组合框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7027604/

相关文章:

javascript - <select>内<option>的value属性不是通过$.each jQuery函数添加的

javascript - 为什么我的 jquery 没有改变我的 div ?

javascript - jQuery 更改输入值并将其显示为文本

javascript - codeigniter 中的自动完成功能不显示任何内容

javascript - 我怎样才能让 typeahead.js 与 jquery.validate 一起很好地发挥作用?

php - 如何为不同的 "mobile device interfaces"和 "desktop interfaces"组织代码

c++ - QGridLayout 没有按预期工作

java - 从事件监听器开始

google-maps - Xamarin 谷歌地图自动完成

angularjs - 如何在自动完成字段 Angular 上启用退格