如何使用此链接中使用的相同解决方案Adding values to jQuery autocomplete real time
但是使用Web服务而不是数组作为源
这是我的代码:
$("#Agent").autocomplete({
source: function (request, response) {
$.ajax({
url: $("#Agent").data("agentlist-url"),
data: "prefix=" + request.term,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(data, function (item) {
return {
label: item.ID + ' - ' + item.NAME,
value: item.ID,
Type: item.TYPE,
};
}));
},
});
},
select: function (e, i) {
$("#Agent_Id").val(i.item ? i.item.Id : "");
$("#Agent_Name").val(i.item.Name);
$("#Agent_Type").val(i.item.Type);
},
change: function (ev, ui) {
},
});
例如,如果可用的类型是[“苹果”,“橘子”,“香蕉”]。用户在使用文本字段时键入“plums”。如果用户需要,有没有办法将“李子”添加到源列表中?
答案 0 :(得分:0)
使用AJAX获取所需数据,然后将其插入jQuery UI自动完成
for (Reservation reservation : result.getReservations()) {
for (Instance instance : reservation.getInstances()) {
System.out.println("Instance id:"
+ instance.getInstanceId());
}
}
答案 1 :(得分:0)
您可以使用Ajax来调用您的Web服务。查看有关的示例 link
答案 2 :(得分:0)
您需要两个网络服务:
yourdomain/words/search?term={yoursearchterm}
)yourdomain/words/add
)您可以调用您的Web服务,返回如下结果:
$("#auto").autocomplete({
source: function(request, response) {
$.ajax({
url: "yourdomain/words/search",
data: request.term,
type: "GET", // This will depend on how you set up your web service
dataType: "json",
success: function (data) {
response($.map(data.d, function (item) {
return {
label: item.Name + '(' + item.Value + ')',
value: item.Name
}
}))
}
});
},
});
在您链接到的示例中,the accepted answer在输入不在自动完成下拉列表中时显示一个按钮(在这种情况下由您的Web服务返回)。您可以更改该按钮的onClick
事件调用的函数来调用您的第二个Web服务,并传递自动完成输入字段的值。您可以按如下方式修改它:
$("#add").on("click", function () {
$(this).hide();
$.ajax({
url: "yourdomain/words/add",
data: $("#auto"),
type: "POST", // This will depend on how you set up your web service
success: function () {
console.log('Word added');
}
});
});