我试图在找不到匹配项时强制jqueryUI自动完成的面板/列表至少显示默认项(例如“添加新项”)。该项必须能够与某些事件处理程序绑定。
到目前为止,我已经尝试通过添加伪AC面板来解决这个问题,当发现隐藏真正的AC面板时。
我也想知道是否有可能动态更新“source”(在jqueryui.autocomplete的选项中),将项目插入数据集,这样无论文本框中的任何类型都会被检测为匹配,因此显示。 (对不起,这个部分很难解释)。
有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
您可以覆盖_renderItem函数并自己显示并添加“添加新项目”文本。
类似这样的事情:(警告未经测试)
$('#yourinputelementid').data( "autocomplete" )._renderMenu: function( ul, items ) {
var self = this;
$.each( items, function( index, item ) {
self._renderItem( ul, item );
});
var newitem = $( "<li>Add New Item</li>");
newitem.click(function(event) {
alert("newitem test");
});
self.append(newitem);
}
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
.appendTo( ul );
};
答案 1 :(得分:0)
我参与了使用远程数据源的工作。 (http://jqueryui.com/demos/autocomplete/#remote)
当没有找到结果时,只需通过ajax(默认项目,来自服务器)传递一个项目。
解决!