当软键盘可见时,无法单击按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当软键盘可见时,无法单击按钮相关的知识,希望对你有一定的参考价值。

当文本输入元素具有焦点(并且软键盘可见)时,我无法直接单击提交按钮(清晰可见)。我必须首先关闭键盘(通过单击其他地方或键盘上的“完成”),然后单击提交按钮。

这是令人困惑的行为。当键盘可见时,我已经考虑过完全删除登录按钮,但这太混乱了(因为用户不会知道他们可以点击“Go”,或者会对登录按钮不断消失感到恼火)。

这只发生在ios上(不确定它是否仅限于iOS 7,但怀疑它可能是),而我正在使用Telirik AppBuilder作为我的应用程序。

答案
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);
另一答案

因为我使用<button>标签,软键盘在不需要时弹出。我现在改变了所有的<table>(在<td>标签内,但可能是一个<div>),里面有一个<img>标签用于图标。为了使表看起来更像一个按钮,有一个用于颜色/边框的CSS类。提交区域位于顶部(也是)。

该页面可以在http://ask.stroudvoices.co.uk/进行检查

似乎android(假设iPad等)也将按钮视为另一种<input>,而<table>则被视为<body>

有时从旧技术中得到一个简单的答案!

另一答案

我遇到了类似的问题。当我点击提交按钮并且我想保持软键盘可见时,我的需求是什么。这是我的解决方案。

submit.addEventListener('mousedown', function(e) {
    e.preventDefault();
});

我给提交按钮一个mousedown事件,并阻止默认事件。它适用于大多数手机。但是在某些系统中发现ios 12.1.2不可用。就像问题所有者说的那样,我需要点击两次,一次隐藏键盘,第二次点击提交按钮。这困惑了我,我无法解决它。

以上是关于当软键盘可见时,无法单击按钮的主要内容,如果未能解决你的问题,请参考以下文章

出现软键盘时如何避免只有BottomNavbar向上推

检测后退按钮但不关闭对话框片段

单击按钮时刷新片段视图

如何使用 Espresso 测试片段是不是可见

替换的片段仍然可见

导航抽屉活动:在按钮单击时从片段移动到片段