0

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');
});

ありがとうございました。

4

2 に答える 2

0

オートコンプリートダイアログは、キーダウンイベントでのみ開きます。

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

オートコンプリートが開きます。もちろん、フィールド内に何らかの値がなければなりません。そうでない場合、検索は実行されません。

ただし、検索メカニズムは必要ないと言います。次に、オートコンプリートはあなたにとって間違ったガジェットです。多分あなたはコンボボックスを探しています

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

于 2012-10-10T06:32:25.950 に答える