2016-10-18 25 views
1

我使用自动完成功能的自动suggetion,我使用其余的api网址作为数据源,但它是建议所有标签,例如,如果我输入I因此它应该只显示其中包含I,但它显示了所有的标签,甚至当我键入它在这里显示了所有标签的任何关键字标签是我输入的文本自动完成从休息api

<input type="text" id="name" /> 
<input type="text" id="value" /> 

这里是我的Java脚本和jQuery

$(function(){ 
$("#name").autocomplete({ 
source:"http://localhost:8080/JsonRestfull/countries", 
dataType: "json", 
select: function (event, ui) { 
$("#name").val(ui.item.label); 
$("#value").val(ui.item.value); 
return false; 
} 
}); 
}); 

http://localhost:8080/JsonRestfull/countries包含以下数据

[{"label":"IND","value":"India"},{"label":"CHN","value":"China"},{"label":"NEP","value":"Nepal"},{"label":"BHU","value":"Bhutan"}] 
+0

的来源,而不是通过'http://本地主机:8080/JsonRestfull当我把所有的值直接那么它工作正常,但我想利用这个休息网址 –

回答

0

我想你需要的东西是这样的:

$(function(){ 
$.getJSON("http://localhost:8080/JsonRestfull/countries", function(data) { 
    $("#name").autocomplete({ 
    source: data  
     }); 
    }); 
}); 

我希望,这将有助于。

+0

我只是复制您的代码/ countries'并粘贴它代替我的代码,但它没有产生任何自动学习,我很新的jquery请帮助 –

+0

我有更新回答@AmitSinghBhardwaj你可以检查和确认一次吗? – gschambial

+0

现在它显示suggetion框,但是当我键入** I **时,它显示的是所有标签,而不是IND,这是我从我的代码中获得的,也是当我单击任何暗示它正在同一个文本框中显示值时 –

0

您需要使用ajax调用。

$(function(){ 
    $("#name").autocomplete({ 
     source :function(request, response) { 
     $.ajax({ 
      url: "http://localhost:8080/JsonRestfull/countries", 
      dataType: "json", 
      data: { 
       q: request.term 
      }, 
      success: function(data) { 
       response($.map(data, function(item) { 
        return { 
         label : item.label, 
         value : item.value 
        }; 
       })); 
      } 
     }); 
     }, 
     select: function (event, ui) { 
      $("#name").val(ui.item.label); 
      $("#value").val(ui.item.value); 
      return false; 
     } 
    }); 
}); 
+0

雅我做了同样的,但它产生相同的结果我从我的代码意味着什么时,我键入我而不是IND它建议所有四个标签 –

+0

@亚历山德鲁米海我错误地编辑了你的答案。你能恢复它吗? – gschambial

+0

@gschambial,我没有看到你改变了什么。 –