jQuery自动完成don't选择项目
jQuery autocomplete don't select item
在选项"source"中,我使用ajax获得结果+1个自定义注释文本,其中包含有关可能结果的信息。比如:"显示3456个结果中的2个"。这只是用户的信息。
对于-ul-list中的最后一个条目,我不会处理以下事件:keyup、keydown、pageup和pagedown。
为此,我在选项"打开"中设置为:
open: function(event, ui) {
$("ul.ui-autocomplete.ui-menu li:last").removeClass("ui-menu-item").removeAttr("role").html('Show 2 of 3456 results');
},
HTML现在看起来是这样的:
<ul class="ui自动完成ui菜单ui小部件ui小部件内容ui corner all"role="listbox"aria activedescendand="ui activemenuitem"style="z-index:1;top:39px;left:79px;display:block;width:273px;"><li class="ui菜单项"role="菜单项"><a class="ui corner all"tabindex="-1">结果1<a><李><li class="ui菜单项"role="菜单项"><a class="ui corner all"tabindex="-1">结果2<a><李><li class=">显示3456个结果中的2个<李><ul>
如果它至少给出一个真实的结果,而不仅仅是最后一个注释文本,那么这就有效了。
但是,如果没有结果可用,只有注释文本(最后一项)"没有结果",那么我会在事件中收到一条错误消息:keyup、keydown、pageup和pagedown。
Firebug中的错误:item.offset()为空
<ul class="ui自动完成ui菜单ui小部件ui小部件内容ui corner all"role="listbox"aria activedescendand="ui activemenuitem"style="z-index:1;top:39px;left:79px;display:block;width:273px;"><li class=">无结果<李><ul>
我该怎么做才能在列表末尾添加一个不可选择的自定义li?
jQuery UI 1.8.13
我发现,如果li
元素不包含a
标记,这个小部件会抱怨。我意识到这使它可以选择,所以你要么必须为你的情况扩展一点类,要么创建一个CSS规则来确保li
不会得到一个选定的状态(我承认这有点像黑客)
与其干扰CSS选择器,为什么不绑定到select
和change
事件来检查添加到对象中的自定义数据(可通过这些事件的ui.item
参数获得)?你最终会得到这样的东西:
$(function() {
$("#acInput").autocomplete({
source: availableTags,
select: function(event, ui) {
// if it's your info item, then
event.preventDefault();
},
change: function(event, ui) {
// if it's your info item, then
event.preventDefault();
}
});
});
请注意,preventDefault()
只是停止该事件。在某些情况下(当使用键盘浏览列表时),它会用项目的值填充输入。如果您确定所选项目或将要更改的值实际上是您的数据项目,则您希望测试重置文本框的值。
相关文章:
- 在边栏中动态选择项目
- 如果选择了其他选择项目,则隐藏选择项目
- 在 for 循环中选择项目
- 使用ajax/javascript选择项目并将其添加回mysql
- 使用自动完成功能未正确选择项目
- 从laravel 5中的下拉框中选择项目时,应更改隐藏的输入值
- AngularJS下拉列表在选择项目后丢失内容
- 如何从集合中随机选择项目
- 如何在选择项目时使用 ajax 将数据提取到输入字段中
- 检查是否未从下拉列表中选择项目
- 如何使用 jquery 在多组列表框中选择项目
- 选择项目时,kendoListView 更改事件会触发两次
- 无法使用 jQuery .select2 选择项目
- 用于使用 Tab 键选择项目的事件
- 在下拉框中选择项目时更改文本框值
- Jquery - 按 ID 选择项目不起作用
- 使用哈希标记从下拉列表中预先选择项目
- 从下拉列表中选择项目后,显示新选项并显示文本
- 选择项目并一次显示n篇文章
- 有效的javascript算法,用于从数组中选择项目,其中每个条目具有不同的权重