iPad в сафари - исчезает клавиатура


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

косвенно говоря, я ищу эквивалент (но в мобильном сафари)

[tempTextField resignFirstResponder]; 
9 54

9 ответов:

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

var hideKeyboard = function() {
    document.activeElement.blur();
    $("input").blur();
};

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

document.activeElement.blur();

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

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

чтобы предотвратить отображение клавиатуры на:

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

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

добавить только для чтения вот так:

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

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

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

надеюсь, что это помогает.

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

$("#txt").on("focus", function(){
    $(this).blur();
});

работает с jQuery UI datepicker на IPad

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

Я знаю, что это противоречит интуиции, но это, кажется, работает для меня

версия без jQuery:

function hideKeyboard () {
    document.activeElement.blur();
    Array.prototype.forEach.call(document.querySelectorAll('input, textarea'), function(it) { 
        it.blur(); 
    });
}

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

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

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

маленький пример

body {
    @media screen and (max-width: 1024px) { // IPad breakpoint
      cursor: pointer; // Fix iPhone/iPad click issue
    }
  }
}
Sample.views.MessageBar.getComponent(0).blur();
document.activeElement.blur();
window.focus();
Sample.views.sendMessageBar.getComponent(0).setDisabled(true);

вы можете использовать коды выше. Первая и четвертая строки предназначены для этого текстового поля. Он работает на iphone, но он не работает на Android. Я пробовал Iphone 3gs и samsung galaxy s2.

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

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

<meta name="apple-mobile-web-app-capable" content="yes" />