我需要一点关于JQuery UI自动完成的帮助。我希望我的文本字段(.suggest-user
)显示来自AJAX请求的名称。这就是我所拥有的:
jQuery("input.suggest-user").autocomplete({
source : function(request, response) {
var name = jQuery("input.suggest-user").val();
jQuery.get("usernames.action?query=" + name, function(data) {
console.log(data); // Ok, I get the data. Data looks like that:
test = data; // ["one@abc.de", "onf@abc.de","ong@abc.de"]
return test; // But what now? How do I display my data?
});
},
minLength : 3
});
任何帮助都是非常感谢的。
发布于 2014-01-28 00:20:54
在AJAX回调中,需要调用response
函数;传递包含要显示的项的数组。
jQuery("input.suggest-user").autocomplete({
source: function (request, response) {
jQuery.get("usernames.action", {
query: request.term
}, function (data) {
// assuming data is a JavaScript array such as
// ["one@abc.de", "onf@abc.de","ong@abc.de"]
// and not a string
response(data);
});
},
minLength: 3
});
如果响应JSON与AJAX UI autocomplete接受的格式不匹配,那么在将结果传递给响应回调之前,必须在jQuery回调中对其进行转换。See this question and the accepted answer。
发布于 2014-01-28 13:57:24
试试这段代码。您可以使用$.get
而不是$.ajax
$( "input.suggest-user" ).autocomplete({
source: function( request, response ) {
$.ajax({
dataType: "json",
type : 'Get',
url: 'yourURL',
success: function(data) {
$('input.suggest-user').removeClass('ui-autocomplete-loading');
// hide loading image
response( $.map( data, function(item) {
// your operation on data
}));
},
error: function(data) {
$('input.suggest-user').removeClass('ui-autocomplete-loading');
}
});
},
minLength: 3,
open: function() {},
close: function() {},
focus: function(event,ui) {},
select: function(event, ui) {}
});
发布于 2014-01-28 12:43:56
$("#id").autocomplete(
{
search: function () {},
source: function (request, response)
{
$.ajax(
{
url: ,
dataType: "json",
data:
{
term: request.term,
},
success: function (data)
{
response(data);
}
});
},
minLength: 2,
select: function (event, ui)
{
var test = ui.item ? ui.item.id : 0;
if (test > 0)
{
alert(test);
}
}
});
https://stackoverflow.com/questions/21385892
复制相似问题