2012-05-03 28 views
1

您好,我正在使用下面的代碼來填充我的自動完成列表。Jquery自動完成 - 如何將點擊事件添加到列表中

$('#input').autocomplete({ ajax_get : get_roles}); 

    function get_roles(v,cont,roleName){ 
      var roleName = roleName.value; 
      roleName = roleName.toLowerCase(); 
      $.get('/da/roleautocomplete?roleName='+escape(roleName),{q:v}, 
       function(obj){ 
        var res = []; 
        for(var i=0;i<obj.length;i++){ 
        res.push({ id:i , value:obj[i]}); 
        } 
        cont(res); 
       }, 
       'json') 
     } 

我想點擊或從自動完成列表中選擇一個項目時觸發一個事件。我曾試過 -

$('#input').autocomplete({ 
    select:function(event, ui){ 
      // do your things here 
     }, etc. 

但無濟於事。任何人都可以請幫我解決這個問題嗎?

+0

我不知道如何「接受」,點擊哪個鏈接,如何投票給出好的答案?有人可以告訴嗎? –

+0

如果您查看問題的答案,答案左上方會出現帶有上下箭頭的數字。直接在它下面是一個看起來像支票的圖標。這些控制元素的標題屬性文本解釋瞭如何使用它們。 – Carl

回答

2

我有當第一次嘗試使用select:function(event,ui){ ... }類似的問題,但它肯定是要走的路。

關鍵是要使用ui.item來查看被點擊或以其他方式選擇的選項。我原來一直在使用event,然後this,但是對於點擊和鍵盤選擇來說這些是不同的(從某種角度看console.log),所以ui.item就是你想要的。自動完成功能將設置爲label: ..., value: ...,因此最有可能使用的是ui.item.labelui.item.value

2

你好演示http://jsfiddle.net/DMDHC/

請確保你提高你的錄取率:))

有用讀:[鏈接] http://jqueryui.com/demos/autocomplete/(你可以閱讀有關的選項和事件提供等)

D'呃顯然提醒不要忘記接受&投票回答如果您覺得有幫助!

代碼

$("#search").autocomplete({ 
    source: function(req, resp) { 
     $.post("/echo/json/", { 
      json: '["Rambo", "Foobar", "This", "That", "Batman", "Hulk"]', 
      delay: 1 
     }, function(data) { 
      resp(data); 
     }, "JSON"); 
    }, 
     select: function(event, ui) { 

      var TABKEY = 9; 
      this.value = ui.item.value; 

      if (event.keyCode == TABKEY) { 
       event.preventDefault(); 
       this.value = this.value + " "; 
       $('#search').focus(); 
      } 

      return false; 
     } 
}); 

​ 
+0

在我的代碼中,如果把上面的選擇功能,它只是不會調用寫入選擇標籤的功能。請幫忙 ! –

+0

@linusunisfed你可以讓你在jsfiddle中進行更改並將其輕彈給我**或**看起來你從上面的帖子中得到了答案<正如我所見綠色箭頭彈出>總之有樂趣! :) –

+0

其實我正在使用不同的插件。這是jquery.js和Autocomplete.js,這是一些jqac插件。插件你使用的可能是不同的。請告訴我 ! –

相關問題