如何解决jQuery自动完成功能不选择项
| 在选项\“ source \”中,我用ajax得到了结果+ 1个自定义注释文本以及有关可能结果的信息。如:“显示2个结果(共3456个结果)”。它仅是用户的信息。 对于-ul-列表中的最后一个条目,我将不会处理以下事件: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现在看起来像这样:
- 结果1 li>
- 结果2 li>
- 显示3456个结果中的2个 li>
ul>
如果它至少给出一个实际结果,而不仅仅是最后一个注释文本,则此方法有效。
但是,如果没有结果可用,而只有注释文本(最后一项)\“没有结果”,那我会在以下事件中收到错误消息:keyup,keydown,pageup和pagedown。
Firebug中的错误:item.offset()为null
- 没有结果 li>
ul>
我该怎么做才能将自定义-li-添加到列表末尾并且无法选择?
jQuery-UI 1.8.13
解决方法
我发现,如果您的
元素不包含li
标记,则此小部件将抱怨。我意识到这使得它可以选择,所以您要么必须针对您的情况扩展该类,要么创建一个CSS规则以确保a
不会处于选定状态(这有点麻烦,我承认) , 而不是搞砸CSS选择器,为什么不绑定到to4ѭ和li
事件来检查要添加到对象的自定义数据(可通过这些事件的with6ѭ参数获得)?您最终将得到以下内容:change
请注意,$(function() { $(\"#acInput\").autocomplete({ source: availableTags,select: function(event,ui) { // if it\'s your info item,then event.preventDefault(); },change: function(event,then event.preventDefault(); } }); });
只是停止了该事件。在某些情况下(使用键盘浏览列表时),它将使用项目的值填充输入。如果您确定所选项目或将要更改为的值实际上是您的数据项,则希望测试重置文本框的值。preventDefault()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。
- 没有结果 li>
ul>
我该怎么做才能将自定义-li-添加到列表末尾并且无法选择?
jQuery-UI 1.8.13