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

时间:2011-08-11 14:24:47

标签: jquery user-interface autocomplete combobox onchange

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

不起作用的代码:

$('#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和event绑定到该组合框 - 选择器应该在此输入上而不是select。所以工作代码:

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

1 个答案:

答案 0 :(得分:0)

所以,我找到了比绑定事件更清晰的解决方案来创建.ui-combobox-input。您应该在组合框代码中找到初始化输入的位置,并找到select参数。 在这部分代码中进行更改:

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
},