【问题标题】:JQuery autocomplete - Select first item [duplicate]JQuery自动完成 - 选择第一项[重复]
【发布时间】:2011-12-23 13:58:57
【问题描述】:

我正在使用 jquery 自动完成功能,它是从 ruby​​ on rails 应用程序中填充的,我正在创建一个自定义自动完成功能,如下所示:

  $.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

是否可以以编程方式单击自动完成结果列表中的第一项?

干杯

伊夫

【问题讨论】:

    标签: javascript jquery ruby-on-rails-3 jquery-ui autocomplete


    【解决方案1】:
    $( el ).autocomplete({
      autoFocus: true
    });
    

    【讨论】:

      【解决方案2】:

      使用自动对焦:真

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

      【讨论】:

      • 只要将 autoFocus 选项设置为 true,就不需要这个扩展了。
      猜你喜欢
      • 2017-08-06
      • 2013-07-14
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      相关资源
      最近更新 更多