我有以下代码,我很好奇如何强制输入匹配自动完成的内容:
$("#foo").autocomplete({
source: function( request, response ) {
$.ajax({
url: "index.pl",
dataType: "json",
data: {
type: 'foo',
term: request.term
},
success: function( data ) {
response( $.map( data.items, function( item ) {
return {
value: item.id
}
}));
}
});
},
minLength: 1
});
答案 0 :(得分:0)
为了任何在2013年偶然遇到这个问题的人的利益回答这个问题(是的吧!)
$("#my_input").autocomplete({
source: '/get_data/',
change: function(event, ui) {
var source = $(this).val();
var temp = $(".ui-autocomplete li").map(function () { return $(this).text()}).get();
var found = $.inArray(source, temp);
if(found < 0) {
$(this).val(''); //this clears out the field if non-existing value in <select><options> is typed.
}
}
});
<强>说明:强>
map()方法创建一个jQuery对象,该对象填充了函数返回的任何内容(在本例中为每个<li>
元素的文本内容)。
get()方法(当没有参数传递时)将该jQuery对象转换为实际的数组。
以下是我看到解决方案的原始link。
我希望这会有所帮助。谢谢!