【问题标题】:jQuery UI Autocomplete box displayingjQuery UI 自动完成框显示
【发布时间】:2012-10-10 06:25:01
【问题描述】:

我在手动触发 jQuery 自动完成框时遇到问题。源带有 $.ajax 并返回 json。同样在“打开”功能上,我将一些自定义项目附加到框中。现在我需要的是,当您单击输入时,将看到自动完成框。它不需要搜索或任何东西。只需显示带有自定义附加项的框即可。

我试过 minLength: 0 和 $(this).autocomplete('search', '');但这些都行不通。任何帮助将不胜感激。

当前代码:

$(".searchBox").autocomplete({
    delay: 300,
    open: function() {
        $('.ui-autocomplete').prepend('<li class="nav-button ui-menu-close"><a href="#">&#215</a></li>');

        var position = $('.ui-autocomplete').position(),
            left = position.left, top = position.right;

        $('.ui-autocomplete').css({left: 0,
            width: "auto",
            'z-index': 1000
        });
        $('.ui-menu-close').on('click', function() {
            $('.searchBox').autocomplete('close');
        });
    },
    source: function(request, response)
    {
        $.ajax({
        url: '/search',
        data: {
            'ajax' : 1,
            'query': request.term
        },
        timeout: 3000,
        dataType: 'json',
        success: function(data) {                           
            console.log(data)
        },
    });
    },
    minLength: 0
}).focus(function() {
    $(this).data('autocomplete')._trigger('open');
    $(this).trigger('keydown.autocomplete');
});

谢谢。

【问题讨论】:

  • 一些代码会很好!

标签: jquery jquery-ui-autocomplete


【解决方案1】:

自动完成对话框仅在 keydown 事件时打开:

$('#your_autocomplete_field').trigger('keydown');

将打开自动完成功能。当然,字段内必须有一些值,否则不会执行搜索。

但是你说你不想要搜索机制。那么自动完成对您来说是错误的小工具。也许您正在寻找组合框

http://jqueryui.com/autocomplete/#combobox

【讨论】:

  • 他提到源带有$.ajax,所以看起来他确实想要自动完成功能......但也希望菜单在click上打开......在这种情况下你可以绑定click事件触发keydown,如果输入的值与已经查到的值相同,则不再进行额外搜索,只会显示相同的菜单...这似乎是他想要的功能
  • 我尝试触发 keydown,但仍然没有菜单。 tomaroo 说的也是我需要的功能。
【解决方案2】:

您可能必须与可能隐藏列表的其他自动完成事件作斗争,但这应该可行:

$(".searchBox").click(function() {
    $('.ui-autocomplete').show();
}); 

【讨论】:

  • 这会起作用,但我不喜欢这种 hack。如果有人知道,本机解决方案会更好。不管怎么说,还是要谢谢你! :)
  • 您可以尝试手动触发自动完成事件以查看您是否获得了所需的内容,但我认为它们中的任何一个都不会打开菜单。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 2012-06-09
  • 2015-08-09
  • 2012-11-10
  • 2011-08-16
  • 2011-10-12
相关资源
最近更新 更多