iPad Safari - заставить клавиатуру исчезнуть - PullRequest
58 голосов
/ 09 мая 2011

В браузере iPad Safari, когда я изменяю фокус с текстового поля на раскрывающееся меню, клавиатура все еще остается ... Есть ли способ (возможно, с Javascript), когда я могу скрыть клавиатуру, когда пользователь стирает текст из текстового поля?

Косвенно говоря, я ищу эквивалент (но в Mobile Safari)

[tempTextField resignFirstResponder]; 

Ответы [ 9 ]

152 голосов
/ 14 октября 2011

Я нашел решение для этого в http://uihacker.blogspot.com/2011/10/javascript-hide-ios-soft-keyboard.html. По сути, просто сделайте это (это работало для меня):

var hideKeyboard = function() {
    document.activeElement.blur();
    $("input").blur();
};
20 голосов
/ 25 ноября 2011

У меня был iPad с iOS 5.0.1, который не скрывал клавиатуру после успешного входа на мой сайт. Я решил, просто выполнив команду javascript

document.activeElement.blur();

после успешного входа в систему и теперь клавиатура правильно скрыта: -)

15 голосов
/ 24 июня 2011

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

Чтобы не показывать клавиатуру:

<input type="text" name="someInput" />

, когда вы хотите что-то сделать, например, использовать указатель даты jQuery UI ...

добавить атрибут readonly вот так:

<input type="text" name="someInput" readonly="readonly" />

Если вы пытаетесь помнить людей с отключенным JS, вы всегда можете не указывать атрибут и добавить его в свой код:

$('[name=someInput]').attr('readonly','readonly');

Надеждаэто помогает.

Вот jsFiddle, демонстрирующий концепцию: http://jsfiddle.net/3QLBz/5/

5 голосов
/ 30 мая 2013
$("#txt").on("focus", function(){
    $(this).blur();
});

работает с датчиком выбора jquery UI на IPad

2 голосов
/ 17 июля 2018

Собственно, клавиатура iPad, iPhone должна исчезнуть, когда ввод теряет фокус.

Я разобрался на мобильных / планшетных устройствах, которые
Safari обрабатывает событие нажатия только для элементов, имеющих cursor:pointer свойство .

Я наконец-то добавил cursor:pointer на тег body для мобильных / планшетных устройств, и он работает как шарм.

Маленький образец

body {
    @media screen and (max-width: 1024px) { // IPad breakpoint
      cursor: pointer; // Fix iPhone/iPad click issue
    }
  }
}
1 голос
/ 22 мая 2011

Я вызываю .focus () в другом текстовом поле, и клавиатура исчезает. Я использую сенсорный каркас Sencha, текстовое поле, на которое я ссылаюсь, является объектом Ext.Text.

Я знаю, что это нелогично, но мне кажется, что это работает

0 голосов
/ 07 июля 2015

Версия без jQuery:

function hideKeyboard () {
    document.activeElement.blur();
    Array.prototype.forEach.call(document.querySelectorAll('input, textarea'), function(it) { 
        it.blur(); 
    });
}
0 голосов
/ 09 декабря 2011
Sample.views.MessageBar.getComponent(0).blur();
document.activeElement.blur();
window.focus();
Sample.views.sendMessageBar.getComponent(0).setDisabled(true);

Вы можете использовать коды выше. Строки First и Forth предназначены для этого текстового поля. Он работает на iphone, но не работает на Android. Я пробовал Iphone 3gs и Samsung Galaxy S2.

0 голосов
/ 17 мая 2011

Согласно документации Apple Safari, при выборе раскрывающегося списка (список выбора) iOS отклоняет клавиатуру и отображает собственный элемент управления выбором iOS.Убедитесь, что вы используете элемент SELECT для выпадающего списка

, а также попробуйте добавить его в метатеги для страницы

<meta name="apple-mobile-web-app-capable" content="yes" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...