Ввод под результатами автозаполнения jQuery активируется при выборе из результата

When I start typing in the name of the species I am looking for the jQuery autocomplete widget comes with a dropdown and some results. Great!!

Единственная проблема заключается в том, что когда я выбираю элемент из списка, активируется «элемент ввода, расположенный под этим элементом списка». И приводит к собственному раскрывающемуся списку Android сверху. Я пытался использовать z-индексы в поле результатов автозаполнения и в элементах ввода. Ни работы.

Любые идеи?


person Timo    schedule 09.12.2010    source источник


Ответы (2)


Ну, ни распространение, ни z-индексы вроде бы не решают проблему.

Единственный способ, который я нашел, - это установить другие поля (это все, кроме одного, заполняемого автоматически) в отключенный режим.

Итак, когда окно автозаполнения открыто, я отключаю все остальные входы и сбрасываю их после закрытия окна:

$("#venue_name").autocomplete({
    minLength: 2,
    source: venueData,
    open: function(event, ui) { // disable other inputs
        $("input#venue_address").attr("disabled", "disabled");
        $("input#venue_cross_street").attr("disabled", "disabled");
        $("input#venue_city").attr("disabled", "disabled");
    },
    close: function(event, ui) { // re-enable other inputs
        $("input#venue_address").removeAttr("disabled");
        $("input#venue_cross_street").removeAttr("disabled");
        $("input#venue_city").removeAttr("disabled");
    }
});

Вы можете улучшить приведенный выше код, скажем, поместив элементы для отключения в массив и т. д., но основная логика остается прежней: отключите элементы, чтобы Android не выделял их, когда активировано поле автозаполнения, и снова включите их после того, как поле автозаполнения отсутствует.

person Victor Farazdagi    schedule 26.06.2011
comment
Я столкнулся с той же проблемой в Chrome, и отключение раскрывающегося списка под ним повлияло на возможность выбора автозаполнения поверх него в определенной степени. Я просто собираюсь скрыть его вместо отключения. - person Cymbals; 10.01.2012

Отмена распространения событий может быть ключом к решению этой проблемы. Этот вопрос может помочь решить проблему, с которой вы столкнулись. Распространение событий в Javascript

Это также может оказаться полезным: http://www.quirksmode.org/js/events_order.html< /а>

person Norman H    schedule 09.12.2010
comment
Просто сейчас занят другими делами. Но ваш ответ очень ценен. Я посмотрю на это и вернусь к вам с результатами. - person Timo; 16.12.2010