<Select> не работает в приложении Phonegap на Android 2.3.3

Я работаю над телефоном для Android и iOS. Большинство вещей работает очень хорошо, но я испытываю проблему с <select> . Он расширен с помощью jQuery mobile и на той версии Android, когда соответствующий div нажат / нажал, параметры не отображаются. Они появляются, когда я делаю два клика / нажатия:

  1. На div, содержащем <select>
  2. На площади выше div

В этом сценарии отображаются параметры и при запуске выбранного события изменения и выполняется привязка кода к нему.

Я обнаружил эти две проблемы с Android: http://code.google.com/p/android/issues/detail?id=10280 и http://code.google.com/p/android/issues/detail?id=6721

Я пробовал обходные решения, упомянутые там, но они ничего не меняют. Мне еще нужно сделать два клика, но это не то поведение, которое мне нужно. Мне нужен только один клик.

Проблема существует только на Android 2.3.3, и я думаю и о старых версиях. На iOS и новых андроидах все работает отлично.

Я борюсь с этим вопросом весь день и все пробовал.

Любая помощь, советы будут в значительной степени оценены. Благодарю.

Solutions Collecting From Web of "<Select> не работает в приложении Phonegap на Android 2.3.3"

Вы попробовали добавить в меню выбора атрибут data-native-menu = "false".

Пример:

 <select name="gender" id="gender" data-theme="b" data-native-menu="false" > <option value="">Please specify ...</option> <option value="option1">Male</option> <option value="option2">Female</option> <option value="option3">Undisclosed</option> </select> 

Именно это и решило мою проблему. В android 2.3.x Я установил z-index в поле выбора ~1000 (намного выше других элементов), и он решил проблему. По-видимому, родной браузер испортил «слои». Надеюсь, поможет.

У меня была та же проблема, я понял, что проблема в том, что я использовал свойство data-position = "fixed" для заголовка страницы, содержащего элемент select. Когда я удалил data-position = "fixed" из моего заголовка, заголовок не был зафиксирован наверняка, но избавился от этой досадной проблемы выбора не «нажал». надеюсь это поможет!

Имея ту же проблему с Android-обозревателем android 2.3 и сгенерированным JavaScript, я решил использовать jQuery, чтобы сфокусировать элемент после его рендеринга и каждый раз, когда он был повторно отображен (даже если используется $ .SELECT.show ()).

После выполнения $ ("# element"). Focus () поле выбора ведет себя нормально снова, его оба можно щелкнуть и обновить после выбора новой опции.

Единственный способ, которым это сработало для меня, – добавить это на мой сценарий jQuery:

 $('select').click(function () { $(this).focus(); }); 

Я пробовал все ваши предложения без везения. То, что я закончил, – не лучшее решение, но это лучше, чем альтернатива, если ничто иное не обновит окно выбора. Я сделал это с помощью jQuery следующим образом:

 $(".select_box").change(function() { $(this).hide(); $(".select_box").show(); }); 

Бум, обновлено.

Пожалуйста, помните, что это только решение, если ничего не будет работать.

Убедитесь, что ваша страница div находится не внутри другого div . Он должен выглядеть так:

 <body> <div data-role="page"> ... </div> </body> 

Не так:

 <body> <div> ... <div data-role="page"> ... </div> ... </div> </body> 

У меня была точно такая же проблема с использованием select с data-native-menu="true" и все было нормально, как только я удалил этот дополнительный div .

Я знаю, что этот вопрос был опубликован два года назад, но на случай, если кто-то столкнется с этой проблемой сегодня, как это было недавно:

У меня было то же поведение, что и вы. Проблема у меня была с div, который появился как заголовок и имел атрибут data-role = "header" и data-position = "fixed". В jQuery mobile есть ошибка, вызывающая ряд странных проблем в Android 2.2 / 2.3 ( http://demos.jquerymobile.com/1.3.2/widgets/fixed-toolbars/ ).

Я исправил эту ошибку, удалив «data-position =« fixed »из заголовка и добавив пользовательский класс со следующим кодом:

 .custom-header{ position: fixed !important; left: 0px !important; right: 0px !important; top: 0px !important; z-index: 999 !important; } 

Надеюсь, это помогает кому-то.