【问题标题】:JQuery UI - How to bind change event to combobox?JQuery UI - 如何将更改事件绑定到组合框?
【发布时间】:2011-08-11 14:24:47
【问题描述】:

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

无效的代码:

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

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

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

编辑:实际上我发现了我的问题所在。 $('#select').combobox(); 只是将选择映射到自动完成输入。它创建的输入有一个像id='select-autocomplete' 这样的id,所以要绑定和事件到那个组合框——选择器应该在这个输入上而不是在选择上。所以工作代码:

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

【问题讨论】:

  • 您遇到了什么问题?基本上,当字段模糊时,应该触发 autocompletechange 事件。 (失去焦点)如果您将焦点转移到另一个字段,您是否没有看到警报?

标签: jquery user-interface autocomplete combobox onchange


【解决方案1】:

所以,我找到了比将事件绑定到创建的 .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
},

【讨论】:

  • 仅用于链接:可以在here 找到类似的答案和更多解释。
猜你喜欢
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多