【问题标题】:Can't click button when soft-keyboard is visible软键盘可见时无法单击按钮
【发布时间】:2014-06-13 04:08:36
【问题描述】:

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

这是令人困惑的行为。我考虑过在键盘可见时完全删除登录按钮,但这太令人困惑(因为用户不会知道他们可以单击“Go”,或者会因为登录按钮不断消失而烦恼)。

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

【问题讨论】:

  • 为提交按钮操作中的特定字段退出键盘(使用 [textFied resignFirstResponder];)。因此,当单击提交按钮时,键盘将自动关闭。
  • @gunas 正如 OP 中所述,我不是在编写本机代码。这需要通过提到的框架来完成。

标签: javascript html ios keyboard telerik


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    可以在http://ask.stroudvoices.co.uk/查看页面

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

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

    【讨论】:

      【解决方案3】:
      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);
      

      【讨论】:

      • 感谢您的回答。我今天就试试看,如果有效就接受。
      猜你喜欢
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      • 2020-08-10
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 2015-11-29
      相关资源
      最近更新 更多