Android浏览器后退箭头/重新提交提交旧动态表单数据

时间:2011-11-17 17:14:55

标签: jquery android forms browser mobile

我创建了一个系统,它动态构建一个表单并用隐藏的输入填充它然后提交它。我使用jQuery来执行此操作并使用:

$('big form string here').appendTo('body').submit();

以及将其添加到DOM并提交的各种其他形式。

该系统在jQuery Mobile框架内实现。

我已将系统设置为不使用ajax进行任何页面更改或表单提交。我还为每个表单和每个页面手动指定了data-ajax ='false'。

此外,页眉包含以下内容:

<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate, max-age=0"/> 
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="Sat, 26 Jul 1997 05:00:00 GMT" />

我遇到的问题似乎只出现在Android浏览器上,并且在点击浏览器的后退箭头后涉及第二次提交表单

在返回到之前动态创建的表单的页面后,我检查整个DOM中的表单和任何输入,但没有找到。考虑到上面的标题值,哪个是正确的?在提交时,我再次动态地重新创建表单,就像第一次一样。

但是...... 当我在提交之前查看表单和数据时,它仍然包含先前的提交数据,并将之前的数据提交回服务器!

在Mobile Safari,Firefox或Chrome中不会发生这种情况。

我能够使其工作的唯一方法是在页面上的HTML中对表单进行硬编码,这需要对我的项目进行重大的重构!

我不确定我是在处理隐藏的DOM对象,还是与浏览器历史对象或某些jQuery Mobile缓存或其他东西有关。由于它在Android手机上,因此查看整个DOM并不容易。

似乎没有人驯服这只野兽。

如果有人对实际看到此表单感兴趣并且可能有一些强大的方法在Android上进行调试,请提出请求,我可以向您发送链接和说明。

另请告诉我在某种调试模式下模拟Android的最有效方法。

非常感谢。

0 个答案:

没有答案