【发布时间】:2014-07-17 17:28:09
【问题描述】:
我目前正在同时使用这两个插件:
https://github.com/stidges/jquery-searchable
https://github.com/devbridge/jQuery-Autocomplete
我的问题是,当我从自动完成下拉菜单中选择一个选项时(通过鼠标单击),它会填充文本区域,但不会触发 jquery-searchable 过滤器操作。
但是,如果我从自动完成下拉列表中选择一个选项使用键盘(使用向下箭头键),jquery-searchable 可以工作。
需要注意的一点是,如果我在选择一个选项后在文本框中执行任何类型的按键操作,无论是输入空格还是简单地使用左/右箭头键移动光标,mouseclick 方法都会“起作用” .一旦发生任何这些操作,jquery-searchable 就会启动,并且像往常一样过滤可搜索的项目。
我猜点击和键盘选择将数据写入输入字段的方式肯定有所不同。
另一方面,如果我可以在选择一个选项后模拟输入中的按键。如果可能的话,我不想依赖骇人听闻的按键模拟,但为了提问,这是我尝试过的(不起作用):
$('#dpt-search').autocomplete({
lookup: dpts,
minLength: 0,
onSelect: function (suggestion) {
$('#dpt-search').trigger('keypress');
}
});
基本上,
1.) 有没有办法让 jquery-autocomplete 选项通过 mouseclick 选择的操作方式与通过键盘选择选项的方式相同?
2.) 如果没有,有没有办法确保在我选择输入元素后在输入元素内发生一些模拟键盘活动,以触发 jquery-searchable?
下面是实际示例:http://cpira.tamucc.edu/membership/findrep/
尝试在搜索字段中输入“Center”,然后用鼠标单击第一个选项。该字段将自动填充,但searchable 不会过滤列表。
清除该字段,然后再次搜索“中心”,但此类型使用您的键盘向下箭头键。每个选择(当您使用箭头键向下移动列表时)都会更新 searchable 过滤器。
【问题讨论】:
-
你能分享一个指向托管网站或 jsFiddle 的链接吗?
标签: jquery jquery-autocomplete