【发布时间】:2011-12-23 13:58:57
【问题描述】:
我正在使用 jquery 自动完成功能,它是从 ruby on rails 应用程序中填充的,我正在创建一个自定义自动完成功能,如下所示:
$.widget( "custom.code_complete", $.ui.autocomplete, {
_renderMenu: function( ul, items ) {
var self = this,
currentCategory = "";
$ul = ul;
$.each( items, function( index, item ) {
if ( item.category != currentCategory ) {
ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
currentCategory = item.category;
}
self._renderItem( ul, item );
});
}
});
$("#r-code").code_complete({
source: "URL",
minLength: 2,
select: function(event, ui) {
$(".button-row").fadeIn();
get_details(ui.item.url);
}
});
我将用户从另一个页面重定向到带有自动完成表单的页面,URL 中有一个参数,该参数是用于搜索的代码,这里是用于搜索的 JS:
function ac_search(code) {
$("#r-code").val(code);
$("#r-code").code_complete('search', code);
}
这会完美地执行搜索并显示结果的下拉列表。我试图让脚本然后选择列表中的第一个结果。我试过通过选择器来做:
$(".ui-menu-item:first a").click();
这会在自动完成列表中找到正确的元素,但是当我尝试模拟点击时会出现以下错误:
TypeError: ui.item is null
是否可以以编程方式单击自动完成结果列表中的第一项?
干杯
伊夫
【问题讨论】:
标签: javascript jquery ruby-on-rails-3 jquery-ui autocomplete