【发布时间】:2012-06-03 12:21:54
【问题描述】:
我需要使用组合框执行以下操作。
-
Select box有一个用户可以搜索的默认城市列表。 - 如果用户在
input框中输入文本,我需要调用ajax 来获取数据并向用户显示选项。 - 如果根据用户请求获取数据,则应将这些城市附加到
Select box的选项中
使用jQuery autocomplete 我可以在用户输入字符串并显示结果时获取 json 数据。但是,我对如何使用组合框集成它一无所知。
Combobox 使用静态数据数组进行搜索,如果我理解正确,则使用正则表达式来匹配值。但是,如何中断它并使用 ajax 调用从服务器获取数据并更新结果?
输入文本框的自动完成:
$( "#searchDestination" ).autocomplete({
delay: 500,
source: function( request, response ) {
$.ajax({
url: "/wah/destinationsJson.action",
dataType: "json",
data: {
term: request.term
},
type: "POST",
success: function(data){
if(data.cities.length == 0)
return response(["No matching cities found for " + request.term]);
response( $.map(data.cities, function(item){
return{
label: item.name,
value: item.name
};
})
);
}
});
},
minLength: 2
});
});
【问题讨论】:
-
您的自动完成源数据是什么样的?
-
@ltiong_sh 我的简单输入文本框的自动完成功能适用于 JSON。 (虽然更新了我的答案)
-
当您说获取的列表应该附加到默认列表时,这是否意味着默认项目将始终可见,或者它们也会被过滤......基于用户输入?
-
获取的结果应该附加到原始选项列表中。根据用户输入,只有符合条件的选项才可见。
标签: ajax jquery autocomplete combobox