![](/img/trans.png)
[英]How to set a default value for a Google places API auto complete textbox
[英]Google auto complete on textbox?
我想在一個文本框中顯示所有Google搜索自動完成。 搜索谷歌后,我發現“ http://google.com/complete/search?output=toolbar&q=test ”鏈接返回了一個包含十個谷歌搜索提示的xml數據。 用於顯示此xml值的我的jQuery代碼是:
$(window).ready(function(){
$( "#textbox" ).keypress = showSuggest();
});
function showSuggest() {
$.ajax({
type: "GET",
url: "http://google.com/complete/search?output=toolbar&q=" + $("#textbox").val(),
dataType: "xml",
var data = [];
success: function(xml) {
$(xml).find('CompleteSuggestion').each(function(){
data.push($(this).find('suggestion')[0].attr('data'));
});
}
});
$( "#textbox" ).autocomplete({
source: data
});
}
導入了jquery-1.9.1.js和jquery-ui-1.10.3,但是此代碼不起作用。 對不起,我的英語不好。 謝謝。
UPDATE
謝謝大家。 我編輯我的代碼並刪除xml閱讀部分並替換
url: "http://google.com/complete/search?output=toolbar&q=" + $("#textbox").val()
$("#textbox").autocomplete({
source: data
});
有了這個 :
$( "#textbox" ).autocomplete({
source: "http://suggestqueries.google.com/complete/search?client=firefox&q=" + $( "#textbox" ).val()
});
現在,在鍵入文本時,僅在文本框左側顯示進度圖像,而仍不顯示標記。 請幫忙。
新更新
我用Firefox DOMParser編寫了新代碼,但仍然無法正常工作。
$("#textbox").keypress(function() {
var data = [];
var parser = new DOMParser();
var xml = parser.parseFromString("http://google.com/complete/search?output=toolbar&q=" + $("#new-tag-post_tag").val(), "application/xml");
xml.domain = "google.com";
suggests = getElementsByTagName("CompleteSuggestion");
for (var i = 0; i < suggests.length; i++) {
data.push(suggests[i]);
}
$( "#textbox" ).autocomplete({
source: data
});
}
$(document).ready(function(){
$( "#textbox" ).keypress(showSuggest);
});
function showSuggest() {
// Declare the variable here, not inside the $.ajax code
var data = [];
$.ajax({
type: "GET",
url: "http://google.com/complete/search?output=toolbar&q=" + $("#textbox").val(),
dataType: "xml",
success: function (xml) {
$(xml).find('CompleteSuggestion').each(function () {
data.push($(this).find('suggestion')[0].attr('data'));
$("#textbox").autocomplete({
source: data
});
});
}
});
}
您的JavaScript語法錯誤。 這可以工作:
$(document).ready(function() {
$("#textbox").on("keypress", showSuggest);
});
function showSuggest() {
var data = [];
$.ajax({
type: "GET",
url: "http://google.com/complete/search?output=toolbar&q=" + $("#textbox").val(),
dataType: "xml",
success: function(xml) {
console.log(xml);
$(xml).find('CompleteSuggestion').each(function(){
data.push($(this).find('suggestion')[0].attr('data'));
});
$( "#textbox" ).autocomplete({ source: data});
}
});
}
無論如何,我建議您在開始編程之前先學習JavaScript。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.