JQuery UI автозаполнение: как сохранить список выбора открытым, пока не будет сделан выбор - PullRequest
2 голосов
/ 25 января 2011

Я хочу заставить пользователя выбрать что-то из выпадающего меню автозаполнения jquery Я пытался вернуть false в функцию, используя событие «close», но это не работает. Как сохранить список выбора открытым, пока пользователь не сделает выбор?

Для тех, кому нужно это увидеть, http://smartsend.ontech.com.au/quote Введите почтовый индекс из четырех букв - Я хочу оставить этот список открытым.

Спасибо

Jason

Ответы [ 2 ]

2 голосов
/ 22 августа 2013

Добавление пользовательского обработчика для события закрытия, которое открывает результаты, работает, но немного раздражает, потому что результаты никогда не могут быть закрыты.Я хотел, чтобы результаты оставались открытыми после того, как пользователь сделал выбор, чтобы они могли выбирать больше, но закрывать, если пользователь не делает выбор и щелкает в другом месте, или если пользователь нажимает escape, или удаляет введенный текст, илиделает что-нибудь еще, что обычно закрывает результаты.Вот что сработало для меня:

close : function (event, ui) {
    event.preventDefault();

    if ( event.which == 1 ) {
        $("ul.ui-autocomplete").show();
        $("ul.ui-autocomplete").data('keep-open', 1);
    }
    else if ( $("ul.ui-autocomplete").data('keep-open') == 1) {
        $("ul.ui-autocomplete").show();
        $("ul.ui-autocomplete").data('keep-open', 0);
    }

    return false;
}

Событие, которое равно 1, когда пользователь делает выбор, однако, другое событие закрытия должно последовать немедленно и закрыть результаты в любом случае.Поэтому я добавил флажок «держать открытыми».Возможно, есть лучший способ справиться с этим осложнением.

Обратите внимание, я также добавил простую кнопку закрытия, чтобы пользователь мог вручную закрыть результаты, когда они закончили выбор.

1 голос
/ 27 января 2011

Я не мог найти способ сделать это, поэтому я использовал плагин пользовательского интерфейса блока

...