Jquery 在“自动完成”组合框中选择下一项时出现问题
我在使用此组合框时遇到一些困难: 我已经在我的网站上实现了它,效果很好,但是当人们选择了一些东西并且想要转到组合框中的下一个项目时,我会收到很多抱怨。 通常,您会单击组合框并按下向下键,但这不适用于此特定代码 我要找的是修改这段代码 我尝试过几种方法,比如在下拉列表显示时,尝试将其ui状态焦点设置为所选项目,但我无法使其正常工作。 我还尝试在下拉菜单中添加一个滚动条,然后在项目上设置选择突出显示 我现在做了一个“Hack”,我只需显示原始项并编辑代码,这样框的下三角形就可以在输入字段旁边看到。因此,当用户点击它时,他将获得原始的下拉菜单,而无法对其进行过滤,但他可以简单地使用向下键或向上键选择下一个或上一个。 不幸的是,这太脏了,我想把它清理一下Jquery 在“自动完成”组合框中选择下一项时出现问题,jquery,Jquery,我在使用此组合框时遇到一些困难: 我已经在我的网站上实现了它,效果很好,但是当人们选择了一些东西并且想要转到组合框中的下一个项目时,我会收到很多抱怨。 通常,您会单击组合框并按下向下键,但这不适用于此特定代码 我要找的是修改这段代码 我尝试过几种方法,比如在下拉列表显示时,尝试将其ui状态焦点设置为所选项目,但我无法使其正常工作。 我还尝试在下拉菜单中添加一个滚动条,然后在项目上设置选择突出显示 我现在做了一个“Hack”,我只需显示原始项并编辑代码,这样框的下三角形就可以在输入字段旁边看到。
$.widget("custom.combobox", {
_create: function () {
this.wrapper = $("<span>")
.addClass("custom-combobox")
.insertBefore(this.element);
this.element.width(5).addClass("showAllButton");
this._createAutocomplete();
this._createShowAllButton();
},
$.widget(“custom.combobox”{
_创建:函数(){
this.wrapper=$(“”)
.addClass(“自定义组合框”)
.insertBefore(此.element);
this.element.width(5).addClass(“showAllButton”);
这是。_createAutocomplete();
这是。_createShowAllButton();
},
我正在尝试的是可能的还是我需要使用不同的组件?如果可能,我应该如何着手修复它
我想补充一点,filter/auto complete选项是必需的。您可以尝试用流动代码替换
\u source
方法。当列表在筛选开始前不可见时,它将打开完整的选项列表,而这正是用户重新输入组合并按下键时所需的。我还没有在所有情况下测试此解决方案d例如,我知道这不会选择以前选择的值,但这是一个开始:)
如果您需要进一步增强此功能,您应该查看并了解如何扩展它以满足您的需要
this._source = function( request, response ) {
var input = this.input;
var wasOpened = input.autocomplete( "widget" ).is( ":visible" );
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
response( this.element.children( "option" ).map(function() {
var text = $( this ).text();
if ( this.value && ( !wasOpened || !request.term || matcher.test(text) ) )
return {
label: text,
value: text,
option: this
};
}) );
}