2009-09-01 25 views
7

我在尋找有沒有「提交」按鈕自動完成,但是,當在自動完成關鍵字,他會被重定向到另一個網址,用戶點擊,我會選擇可點擊自動完成的,像谷歌

我「M使用http://dyve.net/jquery/?autocomplete,我想在這個腳本來實現,不能使用任何其他(因爲如果我在這一種類型的ODE,他出了碼,也奧德薩)

例如:

用戶類型‘咕’ 然後出現GOOGLE,當他點擊GOOGLE的腳本時將他發送到www.google.com (如「谷歌」 =>「http://www.google.com」)

這將是巨大的,如果我可以只用腳本做我告訴你們 我不是一個程序員,所以我需要像,代碼本身,我知道它太多問,但我試過一切= \

謝謝!


在瑞自動完成的問題是,我想這樣做:

如果鍵入 「ODE

它會顯示 「C ODE」,也是「ODE SSA「

不僅是一開始,這就是爲什麼我試圖使用你的代碼在另一個

另外,當我使用拉斯和karim79的代碼,它沒有工作

回答

2

「但即使作者不知道如何做到這一點?

我認爲這很容易通過調用form.submit()來替換消息框警報(在example page中)。雖然我沒有嘗試過。

編輯: 下面是使用http://dyve.net/jquery/?autocomplete一些示例代碼:

$("#mytextbox").autocomplete("form.php", {onItemSelect:submitTheForm}); 

function submitTheForm(){ 
    // redirect user to whatever URL 
} 
+0

這是我的第一個想法;但我對js或jQuery不太好。我以爲我錯過了一些東西。我很想知道它是否解決了這個問題。 – 2009-09-01 22:11:21

+0

這將工作。 jquery-autocomplete項目的正確URL現在是http://code.google.com/p/jquery-autocomplete – dyve 2010-11-05 12:19:03

3

這裏有一個complete walkthrough on how to build an autocomplete search

從本質上講,你需要有一個事件處理程序,按Enter或點擊後選擇調用

window.location.href = "your-url-string.com"; 

編輯:

autocomplete documentation

搜索頁面置換

的自動完成插件可以用來 搜索詞語和重定向到具有相關聯的 頁結果項目。 下面是實現 重定向的一種方法:

var data = [ {text:'Link A', url:'/page1'}, {text:'Link B', url: '/page2'} ]; 
$("...").autocomplete(data, { 
    formatItem: function(item) { 
    return item.text; 
    } 
}).result(function(event, item) { 
    location.href = item.url; // navigate to the chosen URL 
}); 
10

我實現了這樣的事情,但是,我的實現使用的jQuery UI Autocomplete

我使用一個簡單的技巧,從服務器返回的數據是由換行符「\ n」分隔的一組字符串,每行有一個格式爲suggestion :: url的字符串。在客戶端,我簡單地在分隔符處分割(我使用::)並從結果數組的第一個偏移量中提取建議,從第二個偏移量中提取URL。例如:

$("#search").autocomplete("/some/page", { 
     selectFirst: false, 
     formatItem: function(data, i, n, value) { 
      //make the suggestion look nice 
      return "<font color='#3399CC'>" + value.split("::")[0] + "</font>"; 
     }, 
     formatResult: function(data,value) { 
      //only show the suggestions and not the URLs in the list 
      return value.split("::")[0]; 
     } 
    }).result(function(event, data, formatted) { 
     //redirect to the URL in the string 
     var pieces = formatted.split("::"); 
     window.location.href = pieces[1]; 
    }); 

爲了闡明我的意思,假設您輸入'goo'。服務器可能會返回:

google::www.google.com\ngoodstuff::www.example.com 

該用戶將看到一個列表以'google'和'goodstuff'顯示。點擊其中一個將執行自動完成的result方法,在那裏我簡單地取出字符串的URL部分並重定向。希望有所幫助。

+4

你不能返回JSON,然後你可以跳過醜陋的字符串拆分? – Martin 2011-02-20 21:32:54

0

jQuery自動完成插件有一個matchContains選項,它將在結果中進行搜索。將其設置爲true,它也會返回子字符串匹配。

1

下面的代碼工作正常,我用於在遠程數據源(MySQL數據庫)到搜索字段和重定向器轉動的搜索框的數據,如果用戶選擇所建議的結果中的一個:

$("#search").autocomplete("search.php", { 
    width: 260, 
    formatItem: function(data) { 
      return data[0]; 
      } 
     }).result(function(event, data) { 
    window.location.href = data[1]; 
}); 

注:我不得不做出分爲兩個部分ajax的數據:

  1. 搜索詞
  2. 的URL與該字詞

例如。

布拉德·皮特| /演員/ bradpitt

馬特·達蒙| /演員/馬特·達蒙

jQuery的自動完成功能會自動在管道中的數據分離(|),每新行

0

最簡單的,你可以如在JSFiddle

var data = [ 
    { 
     value: 'Google', 
     url: 'http://www.google.com' 
    }, 
    { 
     value: 'StackOverflow', 
     url: 'http://www.stackoverflow.com' 
    } 
]; 

$("input").autocomplete({ 
    source: data, 
    select: function(event, ui) { 
     window.location = ui.item.url; 
    } 
});