2012-06-07 84 views
0

我有一個使用jQuery自動完成的輸入框。我想爲頁面添加一些功能,以便在頁面加載時接受值,然後在自動填充列表中選擇首選項。我創建了一個的jsfiddle來證明我的意思:在頁面加載時選擇自動完成值

http://jsfiddle.net/bwhitney/MQpQG/2/

或者這裏只是代碼:

var myArray = ["apple - a ripe red fruit" 
, "banana - yellow fruit grown in bunches" 
, "orange - the name says it all"]; 

$("input#textbox").autocomplete({ 
    source: myArray 
}); 

$('#clickme').click(function() { 
    // select the #1 autocomplete option for the given text "apple" 
    // ??? 
});​ 

與HTML:

<input type="text" id="textbox" /> 
<input type="button" id="clickme" value="Set the value" /> 

因此,舉例來說,如果加載值爲「apple」的頁面,然後加載文本「蘋果 - 一個成熟的紅色水果」。在這種情況下發送整個短語「蘋果 - 成熟的紅色水果」不是一個可行的選擇。

我可以編寫一個循環遍歷數組中的每個項目並解析出第一個單詞,但我希望jQuery有更好的方法來完成它,因爲它已經可以在其頂部獲得正確答案名單。

編輯:爲了澄清,我想通過按下按鈕我可以使它工作我也可以通過在頁面加載時傳入值來使其工作。這就是爲什麼我的示例使用按鈕而不是頁面加載。

回答

0

自己編寫它並沒有太多的努力,不管你怎麼看它,你都必須迭代數組來找到你正在尋找的項目。

var myWord = "apple"; 

$('#clickme').click(function() { 
    for (item in myArray) { 
     if (myArray[item].indexOf(myWord) == 0) 
      $("#textbox").val(myArray[item]); 
    } 
}); 

Demo