2013-08-06 72 views
2

我在同一時間上多個輸入添加自動完成,從而寫入單個處理功能作爲源。我想有原產地的id屬性可在我的處理函數(即觸發該操作的輸入)。但似乎沒有直接參考自動完成...jQuery的自動完成原點

$('#inputForm #supplier, #inputForm #label').autocomplete({ 
    source: function(request, response) { 
     $.post("autocomplete.php", {id: ???, term: request.term}, success); 
    } 
}); 

任何線索?

+1

您是否嘗試過'this.id'添加數據 - 爲你的額外數據,如

data-id, data-url 

你可以得到的數據,XXX屬性的值?我不知道這是否會讓你獲得正確的「這個」。 – Richard

回答

2

明白了!感謝Richard)

$(this.element).attr('id') 

完整代碼,如果有人有興趣:

$('input').autocomplete({ 
    source: function(request, response) { 
     $.post("autocomplete.php", {origin: $(this.element).attr('id'), term: request.term}, success); 
    } 
}); 
+0

很高興提供幫助。 :) – Richard

0

你可以使用

$(this).attr('id') 

我建議你也可以使用一個類爲所有的自動完成像例如

.autocomplete 

,並通過使用

$(this).data('id') and $(this).data('url') 
enter code here 
$(".autocomplete") 
.each(function() { 
    $(this).autocomplete({ 
     source : function(request, response) { 
    $.post($(this).data('url'), {origin: $(this.).data('id'), term:    request.term}, success); 
} 
     }); 
    }); 
+0

實際上'$(this)'指的是一個小部件,而不是原始輸入... – Samy

+0

哦,是的,抱歉。編輯我的帖子。 –