我想填充一个包含20多个字段的大表单。目前,我对DB进行了一次Ajax调用,该调用会提取与term
匹配的所有可能的匹配。我不希望每个结果的所有20个字段都显示在选择框中。只需说出姓名和地址。那么如何限制选择框中显示的内容呢?然后,当用户进行选择时,将使用所有隐藏字段填充表单。或者,我应该进行第二次AJAX调用以获取其他字段吗?
$('#customer').autocomplete({
minLength: 2,
source: function(request, response,term) {
var param = request.term;
$.ajax({
url: "quotes/customer_search/"+param,
dataType: "json",
type:"GET",
success: function (data) {
response($.map(data, function(item, index) {
// I want to restrict the number of these values in the options box to 2
return item.firstname1+" "+item.lastname1+"
"+item.telephone1+" "+item.company_name+" "+item.street+"
"+item.city+" "+item.province;
}
));//END Success
},
});//END AJAX
},
答案 0 :(得分:0)
我只是颠倒逻辑。而不是在自动完成源回调中进行ajax调用,只需执行ajax调用,并在成功回调中填充自动完成和其他表单字段。
这样的事情:
$.ajax({
url: "quotes/customer_search/"+param,
dataType: "json",
type:"GET",
success: function (data) {
$('#customer').autocomplete({
minLength: 2,
source: function(request, response,term) {
var param = request.term;
response($.map(data, function(item, index) {
return item.firstname1+" "+item.lastname1;
}
}
};
//now use data to fill the other values
//...
}
});