2011-02-25 115 views
5

我有這樣的jQuery代碼:jQuery的自動完成 - 獲取自動完成輸入字段的ID

$(".autocomplete").autocomplete('url',{ 
    extraParams: {country: function(){ 
    var id = $(this).attr("id"); // not working 
    var country = id.replace("uni", "country"); 
    var country_id = $("#"+country).val(); 
    return country_id; 
    }}    
}).result(function(event, item) { 
// getNames(item); 
}); 

正如我將與自動完成場,我需要爲他們每個人送相應的幾個,AJAX加載形式, 從相應表格到服務器的附加參數 。

我試圖通過獲取輸入字段的id並使用它來獲取國家/地區字段的id來實現此目的,該字段將保存必要的參數。該ID將以適當的格式允許這一點。例如:

uni_1,country_1; uni_2; country_2

uni是自動填充字段,而國家是附加參數。

我已經意識到$(this).attr(「id」)在自動完成內部不起作用,就像在簡單的jQuery事件中一樣,我還沒有找到這樣做的方法。我嘗試使用toSource方法來查看自動完成對象,但似乎它不包含字段ID。

所以,如果任何人有一個想法如何做到這一點,請分享。

非常感謝您提前。 伊萬

+0

哪個自動完成您使用(它看起來並不像jQuery UI的一個)插件? – Mottie 2011-02-25 18:35:15

回答

6

您可以嘗試

$(".autocomplete").each(function() { 
    var id = $(this).attr("id"); 
    $(this).autocomplete('url',{ 
     extraParams: {country: function(){ 
     var country = id.replace("uni", "country"); 
     var country_id = $("#"+country).val(); 
     return country_id; 
     }}    
    }).result(function(event, item) { 
    // getNames(item); 
    }); 
});