IPad Safari - заставьте клавиатуру исчезнуть
В браузере Safari iPad, когда я меняю фокус с текстового поля на раскрывающийся список, клавиатура все еще остается... Есть ли какой-то способ (может быть, с Javascript), я могу скрыть клавиатуру, когда пользователь размывается из текстового поля?
Косвенно говоря, я ищу эквивалент (но в Mobile Safari)
[tempTextField resignFirstResponder];
Ответы
Ответ 1
Я нашел решение для этого на http://uihacker.blogspot.com/2011/10/javascript-hide-ios-soft-keyboard.html. По сути, просто сделайте это (это сработало для меня):
var hideKeyboard = function() {
document.activeElement.blur();
$("input").blur();
};
Ответ 2
У меня был iPad с iOS 5.0.1, который не скрывал клавиатуру после успешного входа на мой сайт. Я решил просто выполнить команду javascript
document.activeElement.blur();
после успешного входа в систему и теперь клавиатура правильно скрыта: -)
Ответ 3
Я знаю, что это немного более старый вопрос, но сегодня я нашел ответ на этот вопрос, и ответ был неловко прост... Я потратил больше времени, чем хотел бы признать, что понял это;)
Чтобы запретить показ клавиатуры:
<input type="text" name="someInput" />
если вы хотите сделать что-то вроде использования jQuery UI datepicker...
добавить атрибут readonly, например:
<input type="text" name="someInput" readonly="readonly" />
Если вы пытаетесь вспомнить людей с выключенным JS, вы всегда можете оставить атрибут и добавить его в свой код:
$('[name=someInput]').attr('readonly','readonly');
Надеюсь, что это поможет.
Вот jsFiddle, демонстрирующий концепцию: http://jsfiddle.net/3QLBz/5/
Ответ 4
$("#txt").on("focus", function(){
$(this).blur();
});
работает с jquery UI datepicker на IPad
Ответ 5
Я вызываю .focus() в другое текстовое поле, и клавиатура исчезает. Я использую Sencha touch framework, текстовое поле im, ссылающееся на объект Ext.Text.
Я знаю, что это противоречит интуиции, но, похоже, для меня это работает
Ответ 6
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.
Ответ 7
Версия без jQuery:
function hideKeyboard () {
document.activeElement.blur();
Array.prototype.forEach.call(document.querySelectorAll('input, textarea'), function(it) {
it.blur();
});
}
Ответ 8
В соответствии с документацией Apple Safari при выборе раскрывающегося списка (выберите список) iOS отклоняет клавиатуру и отображает собственный элемент управления iOS. Убедитесь, что вы используете элемент SELECT для раскрывающегося списка
а также попробуйте добавить это к вашим метатегам для страницы
<meta name="apple-mobile-web-app-capable" content="yes" />