2011-11-01 70 views
0

我有一個很多輸入的表單,所有這些都與類「字段」。在我的JavaScript文件,我有這樣的事情:如何在使用jQuery的UI自動完成時引用輸入字段?

$(".field").autocomplete({ 
    source:"search.php", 
    select:function(event,ui){$(???).doStuff();} 
    }); 

我需要一些方法來指代,其中向用戶寫入(即,一些選擇來代替「???」的輸入字段),以便我可以用周圍的元素做一些事情。我猜測答案就像是「ui.field」,「ui.input」或「ui.element」,但我嘗試了那些和其他人沒有運氣,我無法在文檔中找到答案,也沒有在這裏,所以我轉向你。謝謝!

回答

3

它的this(這是原始元素,未包裝),與大多數jQuery事件一樣。這可以更好地記錄。 :-)所以你的情況:

$(".field").autocomplete({ 
    source:"search.php", 
    select:function(event,ui){ 
     // Here, `this` is the raw DOM element of the field 
     $(this).doStuff(); 
    } 
}); 

例(live copy):

HTML:

<p>Type a <kbd>t</kbd> then pick a choice. The field will turn green briefly.</p> 
<input class="ac" type="text"> 
<input class="ac" type="text"> 
<input class="ac" type="text"> 

的JavaScript:

jQuery(function($) { 
    $(".ac").autocomplete({ 
    source: ["two", "three", "thirty"], 
    select: function(event, ui) { 
     var $this = $(this); 
     $this.css("color", "green"); 
     setTimeout(function() { 
     $this.css("color", ""); 
     }, 500); 
    } 
    }); 
}); 
2

我很確定this.id會在這裏做的。

$(".field").autocomplete({ 
source:"search.php", 
select:function(event,ui){$("#" + this.id).doStuff();} 
}); 
+0

它的工作,謝謝! – Sophivorus

+1

你不需要'id'(並且元素可能沒有),'this'就足夠了。 –

0

您是否試過ui.item(ui.item.value,ui.item.id等)?

+0

'ui.item'是[selected item](http://jqueryui.com/demos/autocomplete/#event-select),而不是輸入欄。 –

相關問題