所以问题是自动完成组合框是在没有更改事件的情况下初始化的。我想在之后绑定它,但是关于组合框的文档似乎不够。
不起作用的代码:
$('#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');
});
答案 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
},