2012-05-03 29 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插件。插件你使用的可能是不同的。请告诉我 ! –

相关问题