当前位置:  开发笔记 > 编程语言 > 正文

在iphone safari webapp中隐藏键盘

如何解决《在iphonesafariwebapp中隐藏键盘》经验,为你挑选了4个好方法。

我正在为iPhone创建一个基于HTML/CSS/JS的webapp.我正在使用表单来接收输入并将数据传递给脚本,但我遇到的一个问题是键盘不会消失.用户将输入信息,点击提交,因为它是JavaScript,页面不会重新加载.键盘仍然存在,这是一个麻烦,并为用户增加了另一个步骤(必须关闭它).

有没有办法强迫Safari中的键盘消失?从本质上讲,我有一种感觉,这个问题等同于问我如何强制输入框失去焦点或模糊.在线查看,我发现有很多示例可以检测模糊事件,但没有一个可以强制发生此事件.



1> 小智..:

更简单地说,您可以在当前聚焦的元素上调用blur().$( "#inputWithFocus").模糊()


最优雅!在jQuery中:$(this).blur()

2> iPadDevelope..:
document.activeElement.blur();



3> ceejayoz..:

您可以尝试focus()使用非文本元素,例如提交按钮.


blur(),tap(),click(),focus()不再工作以在iOS 8+上解决这个问题
@Metagrapher,此问题是由客户的登录iframe引起的,该iframe在文本输入软键盘返回键后并未散焦。hacky解决方案是:创建一个隐藏的(例如,屏幕外)文本输入元素,对其进行聚焦并在屏幕过渡到下一个屏幕之前进行模糊处理。

4> Husky..:

这是一个小代码片段,只要焦点在输入或textarea字段中并且用户点击该元素之外(桌面浏览器中的正常行为),它就会始终隐藏键盘.

function isTextInput(node) {
    return ['INPUT', 'TEXTAREA'].indexOf(node.nodeName) !== -1;
}

document.addEventListener('touchstart', function(e) {
    if (!isTextInput(e.target) && isTextInput(document.activeElement)) {
        document.activeElement.blur();
    }
}, false);


非常好,我可以想象这个奇妙的代码片段受到Web App和phonegap开发人员的极大追捧
这应该是答案.
推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有