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

时间:2014-04-27 18:10:59

标签: javascript html ios keyboard telerik

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

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

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

3 个答案:

答案 0 :(得分:1)

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);

答案 1 :(得分:1)

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

可以在http://ask.stroudvoices.co.uk/

检查页面

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

有时会有一个简单的答案,来自旧技术!

答案 2 :(得分:0)

我遇到了类似的问题。我需要的是当我点击“提交”按钮并且想要保持软键盘可见时。 这是我的解决方法。

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

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