jQuery Mobile Force скрыть программную клавиатуру при фокусировании поля ввода текста

У меня есть поле даты на веб-сайте PHP, и я использую jQuery Mobile для мобильного сайта.

При просмотре сайта в мобильном браузере (например, Firefox Mobile на Android) при нажатии на ввод текста даты появляется диалоговое окно календаря, но на моем Android также появляется программная клавиатура (мягкая клавиатура появляется всякий раз, когда вы фокусируетесь на поле ввода) Есть ли способ принудительно скрыть мягкую клавиатуру? Есть ли общий трюк на основе javascript, чтобы заставить скрыть программную клавиатуру (которая работает на всех мобильных устройствах, таких как iphone, android и т. д.)?

Я использую средство выбора даты jQuery Mobile из здесь TIA


person texens    schedule 01.11.2011    source источник
comment
Только что нашел ответ на свой вопрос. (Думаю, я раньше не искал по нужным ключевым словам :-|) Добавление события размытия jQuery в фокус решает проблему. Благодаря этому сообщению от Дэнни С   -  person texens    schedule 02.11.2011
comment
если вы все еще ищете, я бы посоветовал dev.jtsage.com DateBox   -  person Phill Pafford    schedule 02.11.2011
comment
@Phil, у этого DateBox та же проблема на моем Samsung Nexus 1 под управлением Android 4.0.3: нажатие на ввод вызывает появление окна даты и экранной клавиатуры.   -  person Wytze    schedule 27.06.2012


Ответы (4)


Более простое решение — добавить readonly="true" в поля ввода, к которым у вас подключен указатель даты. Несмотря на то, что вы не можете вводить дату вручную, на мобильном устройстве вам не придется иметь дело с всплывающей клавиатурой, которая будет мешать.

person mdurchholz    schedule 08.08.2013
comment
Это самый простой ответ. - person Jason; 06.04.2018

Только что нашел ответ на свой вопрос. (Думаю, я раньше не искал по нужным ключевым словам :-|)

Проблему решает добавление события размытия jQuery в фокус.

Благодаря этому сообщению от Дэнни С

person texens    schedule 28.10.2012

Мой обходной путь (хотя я использую другой плагин: datebox от jtsage.com) в настоящее время следующий:

  • установить отключенный атрибут на входе
  • привязать обработчик кликов к входу или его родителю
  • обработчик кликов запускает .datebox('open') для выбранного элемента

Таким образом, нет элемента фокуса, поэтому нет срабатывания программной клавиатуры Android.

person Wytze    schedule 27.06.2012

добавьте атрибут только для чтения в поле даты. (или только для чтения = "только для чтения") тип ввода = "текст" data-role = "дата" только для чтения

Для JQM добавьте следующие файлы: jqm.datepicker.css, jqm.datepicker.theme.css, jqueryUI.js, jqm.datepicker.js.

person gnganapath    schedule 08.04.2015