我正在使用针对iOS的cordova构建一个网络应用。我有这个表格
<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中显示时,单击提交按钮并不总是触发提交事件。有些时候它会在前两次工作,但之后会停止工作。以前遇到过这种情况的人?
现在你可能需要先点击键盘上的“完成”(让它消失),然后使用提交按钮。或者,单击提交按钮,键盘显示将使键盘隐藏,然后再次单击提交。
有什么想法吗?
修改
在iOS 6上运行正常,但在iOS 7上,提交按钮在前2次点击后不会触发事件。
答案 0 :(得分:6)
所以我解决了我遇到的问题。正如问题所述,它适用于ios6和android。但是对于ios7,我注意到当我增加提交按钮上方文本字段的高度时,我得到了上面描述的错误。当我没有添加任何影响提交按钮上方元素高度的非默认样式时。很奇怪吧。
但后来我读了question。
因此,我没有使用提交按钮并让我的脚本等待提交事件触发,而是将按钮更改为链接并听取了touchend事件。 Bam,它就像一个魅力。
$(document).on('touchend', 'form #button', function (e) {
$('#formID').submit();
});
所以我让这个事件绕过并触发提交事件,以便点击&#34; Go&#34;键盘上的按钮仍然会触发提交功能。