首页 > 解决方案 > 针对特定情况替代 .change()

问题描述

我想要达到的目标:

我有一个使用 jquery ui 自动完成功能的文本框,我想要实现的是当一个选项被单击并从自动完成下拉列表中选择时,我希望触发一个事件。

问题

我遇到的问题是,我尝试使用 .change() ,但它只会在您单击元素时触发。(这个问题之前在这篇文章中已经问过为什么jQuery.change() 只在我离开元素时触发?)。

但是,在这种情况下,该线程中的解决方案对我没有用。因为我希望在选择下拉列表中的元素并将其加载到文本框中时触发事件。我不想点击文本框来触发 .change() 事件。

理想的结果:

当用户从自动完成列表中选择一个选项时,它会触发事件,而无需用户点击离开文本框。

我想要发生的有问题的事件是,一旦用户选择一个选项,自动完成文本框就会被隐藏:

$(search_box).change( function () {
    $(search_box).hide();
} );

这可行,但正如我上面提到的,用户必须点击离开才能触发更改事件。有什么解决方法吗?

标签: javascriptjqueryjquery-ui

解决方案


您可以autocompleteselect按原样使用事件处理 $( ".selector" ).on( "autocompleteselect", function( event, ui ) {} ); 程序

当从菜单中选择一个项目时触发。默认操作是将文本字段的值替换为所选项目的值。

这里


推荐阅读