我目前正在使用这两个插件:
https://github.com/stidges/jquery-searchable
https://github.com/devbridge/jQuery-Autocomplete
我的问题是,当我从自动完成下拉列表中选择一个选项(通过鼠标点击)时,它会填充textarea,但不会触发jquery-searchable过滤器操作。
但是,如果我使用键盘(使用向下箭头键)从自动完成下拉列表中选择一个选项,则jquery-searchable可以正常工作。
需要注意的一点是,鼠标点击方法"工作"如果我在选择一个选项后在文本框中执行任何类型的按键,无论是进入空格,还是只用左/右箭头键移动光标。在发生任何这些操作时,jquery-searchable会启动,并且可以像往常一样过滤可搜索的项目。
我猜测点击和键盘选择将数据写入输入字段的方式之间肯定存在差异。
另一方面,如果我在选择一个选项后可以在输入中模拟按键。如果可能的话,我不想依赖于hackish按键模拟,但是出于问题的原因,我在这里尝试过(没有工作):
$('#dpt-search').autocomplete({
lookup: dpts,
minLength: 0,
onSelect: function (suggestion) {
$('#dpt-search').trigger('keypress');
}
});
基本上,
1。)有没有办法通过鼠标点击选择jquery-autocomplete选项,操作方式与键盘选项相同?
2.如果没有,有没有办法确保在我选择它之后在输入元素中发生一些模拟键盘活动,以触发jquery-searchable?
以下是实例:http://cpira.tamucc.edu/membership/findrep/
尝试输入"中心"进入搜索字段,然后鼠标单击第一个选项。该字段将自动填充,但searchable
不会过滤列表。
清除字段,然后搜索"中心"再次,但这种类型使用键盘向下箭头键。每个选择(当您使用箭头键向下移动列表时)会更新searchable
过滤器。
答案 0 :(得分:1)
保留jQuery,但将keypress
更改为change
或keyup
。根据从第61行(特别是64)开始的source,搜索的绑定事件为keyup
和change
。我还要在.focus()
之前添加.trigger()
,以确保选择/关注输入。