在iPad Safari浏览器中,当我将焦点从文本框更改为下拉列表时,键盘仍然存在...是否有某种方式(可能使用Javascript)当用户从文本框中模糊时我可以隐藏键盘?
间接地说,我正在寻找相当于(但在Mobile Safari中)的
[tempTextField resignFirstResponder];
答案 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" />