2009-08-12 119 views
0

我有一個網頁與jquery生成動態html輸入框。JQuery autocompleter動態輸入框

類似這樣的東西出現在頁面上。

<input type="text" id="numbers[]" ></input> 
<input type="text" id="numbers[]" ></input> 
<input type="text" id="numbers[]" ></input> 
<input type="text" id="numbers[]" ></input> 

這些文本框都使用相同的autocompleter,是否有可能在jQuery指向我的autocompleter在所有這些?

+0

您正在使用哪個autocompleter? 你應該確保每個輸入都有一個不同的有效的ID。 ID和名稱標記必須以字母([A-Za-z])開頭,後面可以跟隨任意數量的字母,數字([0-9]),連字符(「 - 」),下劃線(「 「),冒號(」:「)和句號(」。「) – Karl 2009-08-12 15:59:51

+0

@Karl:您引用了規範的錯誤部分。名稱屬性與名稱令牌不同。 name屬性可以包含字符數據,其中包括方括號。 – slikts 2009-09-29 12:37:58

回答

5

首先,id在整個文檔中應該是唯一的,因此您的代碼不正確。

什麼你大概的意思是

<input type="text" name="numbers[]" ></input> 
<input type="text" name="numbers[]" ></input> 
<input type="text" name="numbers[]" ></input> 
<input type="text" name="numbers[]" ></input> 

要啓用這些箱子自動完成只使用選擇,將符合所有這些

var data = "foo bar baz"; 
$('input[name^=numbers]').autocomplete(data); 
+0

抱歉,編號確實不正確。這很好,非常感謝。 – Shane 2009-08-13 10:35:44

+0

這就是爲什麼您在尋求幫助之前應該驗證您的文檔。 – slikts 2009-09-29 12:38:34

+0

我有一個輸入框,它允許用戶鍵入他們的國家,因爲我有文本文件中的國家列表,所以當用戶開始輸入'AM''jQuery'應該加載文本文件中匹配'AM'的前兩個信 – 2014-12-28 18:04:20

0

你可以添加一個包裝輸入一個div,這是從來沒有改變,然後在jQuery內部緩存中創建新的輸入存儲它的ID後,就像這樣:

var $input = '<input name=somename[] type="text"/>';  
$('#mywrap').append($input); 
$input.data('id', 'some id'); 

然後,您可以通過以下方式訪問自動完成程序:

$('#mywrap input').live('click', function() { 
    var id = $(this).data('id'); 
    // and now do anything with the new id you have! 
});