iPad Safari - 让键盘消失

时间:2011-05-09 13:10:51

标签: ios ipad mobile-safari

在iPad Safari浏览器中,当我将焦点从文本框更改为下拉列表时,键盘仍然存在...是否有某种方式(可能使用Javascript)当用户从文本框中模糊时我可以隐藏键盘?

间接地说,我正在寻找相当于(但在Mobile Safari中)的

[tempTextField resignFirstResponder]; 

9 个答案:

答案 0 :(得分:151)

我在http://uihacker.blogspot.com/2011/10/javascript-hide-ios-soft-keyboard.html找到了解决方法。基本上,只是这样做(它对我有用):

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

答案 1 :(得分:19)

在我的网站上成功登录后,我使用iOS 5.0.1的iPad没有隐藏键盘。我通过简单地执行javascript命令解决了

document.activeElement.blur();

成功登录后,现在键盘被正确隐藏: - )

答案 2 :(得分:15)

我知道这是一个稍微陈旧的问题,但我今天发现了答案,答案很简单......我花了更多的时间来承认解决这个问题;)

要防止显示键盘:

<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/

答案 3 :(得分:5)

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

适用于IPad上的jquery UI datepicker

答案 4 :(得分:1)

我在另一个文本字段上调用.focus(),键盘消失了。我正在使用Sencha触摸框架,我引用的textfield是一个Ext.Text对象。

我知道这是违反直觉的,但似乎对我有用

答案 5 :(得分:1)

从本质上讲,当输入失去焦点时,iPad,iPhone键盘应该消失。

我发现在移动/平板电脑设备上
Safari仅处理具有cursor:pointer的元素的点击事件  属性

我终于在移动/平板电脑的body标签上添加了cursor:pointer,它的工作原理就像是一种魅力。

小样

body {
    @media screen and (max-width: 1024px) { // IPad breakpoint
      cursor: pointer; // Fix iPhone/iPad click issue
    }
  }
}

答案 6 :(得分:0)

没有jQuery的版本:

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

答案 7 :(得分:-1)

Sample.views.MessageBar.getComponent(0).blur();
document.activeElement.blur();
window.focus();
Sample.views.sendMessageBar.getComponent(0).setDisabled(true);

您可以使用上述代码。第一和第四行是针对该文本字段的。它适用于iPhone,但它不适用于Android。我试过Iphone 3gs和三星galaxy s2。

答案 8 :(得分:-3)

根据Apple Safari文档,当您选择下拉列表(选择列表)时,iOS会关闭键盘并显示本机iOS选择控件。确保在下拉列表中使用SELECT元素

并尝试将其添加到页面的元标记

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