我在我的网站上使用JQuery UI自动完成功能。我正在创建自动完成对象:
$.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);
}
});
这样可以自动完成自动填充字段。我可以在场内搜索很好,它会带来结果没有问题。但有时用户将从另一个页面重定向,并将自动完成值设置为参数,如果是这种情况,将以编程方式触发自动完成,我尝试使用以下代码执行此操作:
function parse_param_code(code) {
console.log(code);
$("#r-code").autocomplete('search', code);
}
成功调用此方法,并将代码输出到控制台,但不会触发自动完成搜索,也不会执行任何操作。我在代码中做错了什么不能触发搜索?我已经阅读了JQuery UI文档,上面的代码应该触发搜索方法。任何帮助将不胜感激。
由于
EEF
答案 0 :(得分:3)
改变
$("#r-code").autocomplete('search', code);
到您自己的小部件名称,即:
$("#r-code").code_complete('search', code);
产生所需的结果。
如果您执行console.log($("#r-code").data("autocomplete"));
,您会注意到该元素没有附加该名称的小部件。