我正在尝试按ID进行搜索,但是按名称进行自动填充
所以我把一个隐藏的输入,在select上更新。
问题是,如果用户按下Esc
或某些如何在不选择的情况下启动搜索,则搜索失败(不返回所需的值),因为隐藏值未更新。我试图强制自动完成选择最高结果,只要没有选择其他结果。
我的代码是:
$('#search_box').focus(function () {
$(hidden).val("");
});
$('#search_box').autocomplete({
source: "autocomplete_empl.asp",
minLength: 2,
autoFocus: true,
select: function (event, ui) {
$('#hidden').val((ui.item ? ui.item.id : 0));
}
});
谢谢!
P.S
返回的列表以json格式显示。
答案 0 :(得分:0)
我会检查autocomplete val()是否为空。 如果它是空的什么都不做(或者你需要选择第一个值?)
$('#search_box').focus(function () {
$(hidden).val("");
});
$('#search_box').autocomplete({
source: "autocomplete_empl.asp",
minLength: 2,
autoFocus: true,
select: function (event, ui) {
if($('#search_box').val() !== ""){
$('#hidden').val((ui.item ? ui.item.id : 0));
}
}
});
如果您需要选择第一个选项,只需使用您需要的数据触发搜索事件
select: function (event, ui) {
if($('#search_box').val() !== ""){
$('#hidden').val((ui.item ? ui.item.id : 0));
}
else{
$('#search_box').autocomplete('search', 'DataYouNeed');
}
}
这是API页面上的链接,它解释了一下 http://api.jqueryui.com/autocomplete/#method-search