javascript - iOS 7 键盘启动时未捕获表单提交按钮事件

标签 javascript ios cordova

我正在使用 cordova 构建一个针对 iOS 的网络应用程序。我有这个表格

<form id="formID">

  <div class="row">
    <input type="text" name="something1" placeholder="something1" class="form-control" required maxlength="26" />
  </div>

  <div class="row">
    <input type="text" name="something2" placeholder="something2" class="form-control" pattern=".{6,6}" required />
  </div>

  <div class="row">
    <input type="submit" value="Submit" class="button btn-primary" />
  </div>

</form>

然后在我的 javascript 中我有一个提交事件的监听器。

我的问题是,当键盘在 iOS 中显示时,单击提交按钮并不总是触发提交事件。 Somethimes 它工作前 2 次,但随后停止工作。以前有人遇到过这个吗?

现在您可能需要先点击键盘上的“完成”(使其消失),然后使用提交按钮。或者,在显示键盘的情况下单击提交按钮,这将使键盘隐藏,然后再次单击提交。

有什么想法吗?

编辑

它在 iOS 6 上运行良好,但在 iOS 7 上,提交按钮在前 2 次点击后不会触发事件。

最佳答案

所以我解决了我遇到的问题。正如问题中所述,它适用于 ios6 和 android。但是对于 ios7,我注意到当我增加提交按钮上方的文本字段的高度时,我遇到了上述错误。当我没有添加任何影响提交按钮上方元素高度的非默认样式时。奇怪吧。

但后来我读到了这个question .

因此,我没有使用提交按钮并让我的脚本等待提交事件触发,而是将按钮更改为链接并监听 touchend 事件。 Bam,它就像一个魅力。

$(document).on('touchend', 'form #button', function (e) {
    $('#formID').submit();
});

所以我让这个事件绕过并触发提交事件,这样点击键盘上的“Go”按钮仍然会触发提交功能。

关于javascript - iOS 7 键盘启动时未捕获表单提交按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306818/

相关文章:

javascript - 如何在网站中实现自定义所见即所得编辑器

javascript - 在 Javascript 中将 10 个循环合并为一个

ios - 上传ios开发构建app

iphone - 应该 URLForUbiquityContainerIdentifier : be called in a thread outside the main thread?

ios - 应用程序崩溃并显示 <gap :config-file platform ="ios" parent ="NSLocationAlwaysUsageDescription" overwrite ="false"> in config. xml

cordova - 在 android WebView 中禁用电子邮件、号码检测

javascript - 从另一个方法调用 Javascript 原型(prototype)方法

javascript - HTTP_REFERER 不适用于 javascript src

iphone - [ios.cocos2d+box2d]如何关闭自动旋转?

javascript - 测试 ionic-cordova- 在浏览器中不起作用