【问题标题】:JQuery autocomplete change event not being fired未触发 JQuery 自动完成更改事件
【发布时间】:2011-07-06 05:56:30
【问题描述】:

每当有人在 JQuery 自动完成搜索字段中输入值时,我都会尝试有条件地更改链接 URL,但是,由于某种原因,使用以下代码我无法注册更改事件,甚至无法绑定处理程序:

 $("#protocol-name").autocomplete({
    source: protocol_names,
}).bind( "autocompletechange", function(){
    alterURL();
 }).focus(function() {
    $(this).select();
    $(this).autocomplete('search');
});

此外,$("#procotol-name").change() 也没有注册任何内容,其中 protocol-name 表示输入字段。

【问题讨论】:

  • 当您将它作为初始化选项提供时它是否工作? `更改:函数(事件,用户界面){ ... }

标签: jquery search input autocomplete


【解决方案1】:

尝试这样做:

$( ".selector" ).autocomplete({
   change: function(event, ui) { ... }
});

【讨论】:

  • 太棒了,效果很好。奇怪的是,其他方法没有这样做......
【解决方案2】:

事实上change 事件被触发了,但只有在输入元素失去焦点之后。你可以check it自己。

UPD:此行为在不同浏览器中不一致,请参阅 http://bugs.jqueryui.com/ticket/8878

【讨论】:

  • 不会在 Chrome 版本 23、24 中触发。
  • 查看它没有被触发的步骤:1)填写“ap”。 2) 按“向下箭头”键。 3)现在在输入字段中你看到“apple”,按“tab”,没有被解雇......
  • @nigi 啊,我明白了。我没有测试实际的自动完成功能:) 更新了答案。
猜你喜欢
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2015-03-17
相关资源
最近更新 更多