Combobox jQuery UI自动完成:设置活动项
我试图用jQueryUIAutoComplete模仿一个简单的HTML选择元素的行为Combobox jQuery UI自动完成:设置活动项,combobox,jquery-ui-autocomplete,Combobox,Jquery Ui Autocomplete,我试图用jQueryUIAutoComplete模仿一个简单的HTML选择元素的行为 是否可以在打开的事件上设置活动项(移动焦点)?基本上,我试图从html select元素中模拟selected=“selected”选项-如果字段中的值与列表中的值匹配,则将该列表项设置为“selected”。以下是您要查找的内容: 基本上,从jquery的网站上获取了新的功能,并更改了renderItem的功能。在jqueryui.com网站的示例中,更改: input.data("autocomple
是否可以在打开的事件上设置活动项(移动焦点)?基本上,我试图从html select元素中模拟selected=“selected”选项-如果字段中的值与列表中的值匹配,则将该列表项设置为“selected”。以下是您要查找的内容: 基本上,从jquery的网站上获取了新的功能,并更改了renderItem的功能。在jqueryui.com网站的示例中,更改:
input.data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("item.autocomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
};
input.data(“自动完成”)。\u renderItem=功能(ul,项目){
返回$(“”)数据(“item.autocomplete”,item).append(“+item.label+”).appendTo(ul);
};
致:
input.data(“自动完成”)。\u renderItem=功能(ul,项目){
$item=$(“”)数据(“item.autocomplete”,item)。追加(“+item.label+”);
if(this.element.val()==item.value){
$item.addClass('ui-state-hover');
}
返回$item.appendTo(ul);
};
以下是您要查找的内容:
基本上,从jquery的网站上获取了新的功能,并更改了renderItem的功能。在jqueryui.com网站的示例中,更改:
input.data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("item.autocomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
};
input.data(“自动完成”)。\u renderItem=功能(ul,项目){
返回$(“”)数据(“item.autocomplete”,item).append(“+item.label+”).appendTo(ul);
};
致:
input.data(“自动完成”)。\u renderItem=功能(ul,项目){
$item=$(“”)数据(“item.autocomplete”,item)。追加(“+item.label+”);
if(this.element.val()==item.value){
$item.addClass('ui-state-hover');
}
返回$item.appendTo(ul);
};
在朋友的帮助下,我终于找到了答案
$('input[data-field=vat_rate]', view.el).autocomplete({
source: function (request, response) {
response(your_source_array);
},
minLength: 0,
open: function (event, ui) {
var term = ui.item.value;
if (typeof term !== 'undefined') {
$(this).data("autocomplete").menu.activate(new $.Event("mouseover"), $('li[data-id=' + term + ']'));
}
}
}).click(function () {
if ($(this).autocomplete('widget').is(':visible')) {
$(this).autocomplete('close');
} else {
$(this).autocomplete('search');
}
}).data("autocomplete")._renderItem = function (ul, item) {
var listItem = $("<li></li>")
.data("item.autocomplete", item)
.attr("data-id", item.id)
.append('<a>' + item.label + '</a>')
.appendTo(ul);
};
$('input[data field=vat_rate]',view.el)。自动完成({
来源:功能(请求、响应){
响应(您的源数组);
},
最小长度:0,
打开:功能(事件、用户界面){
变量项=ui.item.value;
如果(术语类型!==“未定义”){
$(this.data(“autocomplete”).menu.activate(新的$.Event(“mouseover”),$('li[data id='+term+']);
}
}
})。单击(函数(){
如果($(this.autocomplete('widget')。是(':visible')){
$(this.autocomplete('close');
}否则{
$(this.autocomplete('search');
}
}).数据(“自动完成”)。\u renderItem=功能(ul,项目){
变量listItem=$(“”)
.data(“item.autocomplete”,item)
.attr(“数据id”,item.id)
.append('
很完美!:)在朋友的帮助下,我终于找到了答案
$('input[data-field=vat_rate]', view.el).autocomplete({
source: function (request, response) {
response(your_source_array);
},
minLength: 0,
open: function (event, ui) {
var term = ui.item.value;
if (typeof term !== 'undefined') {
$(this).data("autocomplete").menu.activate(new $.Event("mouseover"), $('li[data-id=' + term + ']'));
}
}
}).click(function () {
if ($(this).autocomplete('widget').is(':visible')) {
$(this).autocomplete('close');
} else {
$(this).autocomplete('search');
}
}).data("autocomplete")._renderItem = function (ul, item) {
var listItem = $("<li></li>")
.data("item.autocomplete", item)
.attr("data-id", item.id)
.append('<a>' + item.label + '</a>')
.appendTo(ul);
};
$('input[data field=vat_rate]',view.el)。自动完成({
来源:功能(请求、响应){
响应(您的源数组);
},
最小长度:0,
打开:功能(事件、用户界面){
变量项=ui.item.value;
如果(术语类型!==“未定义”){
$(this.data(“autocomplete”).menu.activate(新的$.Event(“mouseover”),$('li[data id='+term+']);
}
}
})。单击(函数(){
如果($(this.autocomplete('widget')。是(':visible')){
$(this.autocomplete('close');
}否则{
$(this.autocomplete('search');
}
}).数据(“自动完成”)。\u renderItem=功能(ul,项目){
变量listItem=$(“”)
.data(“item.autocomplete”,item)
.attr(“数据id”,item.id)
.append('
非常好用!:)您可以使用添加/删除活动类。与此线程上的其他\u renderItem
代码相比,我更喜欢它
[...previous autocomplete options]
focus: function( event, ui ) {
// Remove the hover class from all results
$( 'li', ui.currentTarget ).removeClass('ui-state-hover');
// Add it back in for results
$( 'li',ui.currentTarget ).filter(function(index, element) {
// Only where the element text is the same as the response item label
return $(element).text() === ui.item.label;
}).addClass('ui-state-hover');
},
[next autocomplete options...]
您可以使用添加/删除活动类。与此线程上的其他\u renderItem
代码相比,我更喜欢它
[...previous autocomplete options]
focus: function( event, ui ) {
// Remove the hover class from all results
$( 'li', ui.currentTarget ).removeClass('ui-state-hover');
// Add it back in for results
$( 'li',ui.currentTarget ).filter(function(index, element) {
// Only where the element text is the same as the response item label
return $(element).text() === ui.item.label;
}).addClass('ui-state-hover');
},
[next autocomplete options...]
此示例中您缺少什么:当我从列表中选择某个项目时,例如Clojure-列表将关闭,而当我再次打开它时,Clojure未被选中,它看起来与其他所有项目完全相同。此示例中您缺少什么:当我从列表中选择某个项目时,例如Clojure-列表将关闭,并且我再次打开它,Clojure未被选中,它看起来与其他所有项目都完全一样。嘿,谢谢,它几乎完成了我想要的操作-除了当我用键盘打开列表并尝试导航时,它从列表的顶部开始,而不是从“活动”开始一个。不过,我已经找到了一个解决方案,我将在这里发布。嘿,谢谢,它几乎满足了我的需求-除了当我用键盘打开列表并尝试导航时,它从列表的顶部开始,而不是从“活动”开始一个。不过,我已经找到了一个解决方案,我将在这里发布。这太棒了@zack我只是在使用jquery标记编辑器自动完成插件为其创建自定义ui时节省了两到三个小时。这太棒了@zack我只是在使用jquery标记编辑器自动完成插件为其创建自定义ui时节省了两到三个小时。