2012-11-12 28 views
1

我想使用輸入的值到輸入受着自動完成的插件的用戶一些簡單的使用jQuery UI自動完成,希望下面的是什麼,我想達到不言自明:試圖完成

source: $(this).val() 

我認爲$(this).val()不會工作,因爲源期望一個對象?

我是JavaScript新手,謝謝。

$(".myinput").autocomplete({ 
    source:$(this).val() 
}); 
+0

這一切完全取決於此代碼片段中$(this)代表的對象。 – Lix

+0

你能否給你的問題添加更多的上下文。什麼是「源」的一部分? – Mutmatt

+0

'「希望以下內容不言自明」'......不是:)請添加一些細節。 – Lix

回答

1

我認爲你正在使用的source說法不正確的jQuery UI的自動完成。 $(this).val()將從$(this) DOM對象中獲取當前值(假設這就是它指向的內容)。

而是source參數應該指向輸入可能完成的來源。作爲一個例子from the jQuery UI website

$(function() { 
    var availableTags = ["ActionScript", "AppleScript", "Asp", "BASIC", 
     "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang"]; 
    $("#tags").autocomplete({ 
     source: availableTags 
    }); 
}); 

正如你從這個例子可以看到,source點可能標籤值的數組,當用戶開始輸入將被自動完成。

爲了解決我的任擇議定書的問題有了新的認識:

用戶的當前條目添加到自動完成,你可以使用如下代碼:

$("#tags").autocomplete("option","source", 
    availableTags.concat($("#tags").val())); 

這將需要每次輸入更改時都會調用(使用keypress事件可能會對此有所幫助。)

+0

但是,如何返回一個數組作爲源與用戶的輸入值?我在facebook上看到了這一點 - 在位置字段中,它們顯示「僅使用」用戶的值「」 - 他們從遠程源檢索並向自動完成添加他們使用輸入的值,我想完成此操作。由於響應的速度,我不認爲它是遠程響應用戶的輸入值,而是它被抓取並在源代碼中使用,那麼結果集的遠程響應將被添加到用戶的值之前我想用作選項。 – lbennet

+0

非常感謝。 – lbennet