我有一个要使用iPad显示的动态表单。
该表单有两个单选按钮、一些文本字段和一个提交按钮。
在iPad中,虚拟键盘上的GO按钮应该起到enter键的作用,导致表单中的第一个submit按钮被单击并发布表单。
为了避免在表单完成之前出现过多的非自愿投递,我们在表单的上方添加了一个额外的提交按钮,该按钮绝对位于可见区域之外,并带有onclick="return false;“。这劫持了回车按键,防止在除Safari Mobile之外的每个浏览器中意外发帖。
在iPad上,我们甚至测试了Opera移动端,它的运行情况和预期的一样。
但Safari Mobile显然忽略了返回false,因为单击该按钮的事件会导致post,而其他浏览器都不会这样做,甚至PC上的safari也不会。
我的问题是
1:为什么safari mobile在提交时忽略了"return false“,这里有没有其他机制在起作用?
2:如何才能阻止Safari mobile在单击GO时发布表单?
我在Google和Stackoverflow上进行了无数次搜索,找到了很多例子,但都需要大量的javascript和事件绑定,表单的动态性质以及用户生成的内容使得这个错误很容易发生,而且相当复杂,因为几乎所有的绑定事件都需要绑定到每个文本框和文本区域。
任何有效的解决方案都是好的,但越简单越好,特别是如果它不需要对可能与自动完成或验证事件冲突的表单或事件进行太多自定义。
示例测试页面:http://lab.dnet.nu/ipad.php
https://stackoverflow.com/questions/9614589
复制相似问题