2011-11-07 54 views
5

我使用的,我从Rails应用程序的红宝石填充jQuery的自动完成和我创建一个自定义的autcomplete像这样:JQuery的自动完成 - 选择第一项

$.widget("custom.code_complete", $.ui.autocomplete, { 
    _renderMenu: function(ul, items) { 
      var self = this, 
       currentCategory = ""; 
     $ul = ul; 
      $.each(items, function(index, item) { 
       if (item.category != currentCategory) { 
        ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>"); 
        currentCategory = item.category; 
       } 
       self._renderItem(ul, item); 
      }); 
     } 
    }); 

    $("#r-code").code_complete({ 
    source: "URL", 
    minLength: 2, 
    select: function(event, ui) { 
     $(".button-row").fadeIn(); 
     get_details(ui.item.url); 
    } 
    }); 

我重定向用户从另一页这是用于搜索代码与在URL参数自动完成表单的页面,这里是JS做搜索:

function ac_search(code) { 
    $("#r-code").val(code); 
    $("#r-code").code_complete('search', code); 
} 

此执行搜索完美,显示下拉结果列表。我正在尝试让脚本选择列表中的第一个结果。

$(".ui-menu-item:first a").click(); 

此找到正确的元素在自动完成列表中,但是当我尝试和模拟单击它给出了这样的错误:

TypeError: ui.item is null 

是否有可能以编程方式我已经尝试通过选择这样做点击自动填充结果列表中的第一项?

干杯

EEF

回答

15

使用自动对焦:真

$(el).autocomplete({ 
     autoFocus: true 
     ... 
}); 
+0

你并不真正需要时,你可以设置自动对焦选项,因为真正的这个扩展。 – Ziad

19
$(el).autocomplete({ 
    autoFocus: true 
});