想知道firefox中html表单的行为吗?

时间:2011-10-12 07:52:16

标签: javascript

我只在firefox中遇到问题:

我使用我自己的方法生成查询字符串,格式为

<form name="mytestform" action="/submit.do">
   <input name="hiddenID" value="12345" type="hidden" > 
</form>

每次每次请求更改值hiddenID时,都会通过ajax调用此页面。

当我使用 getFormData(mytestform)获取表单数据时,它返回第一个访问的表单值(即我一直得到值 hiddenId = 12345 )。

如果我使用 getFormData(document.mytestform),它可以正常工作。

当我使用ajax时,我不确定表单对象是否在firefox中缓存。

请解释一下它背后的逻辑是什么?

3 个答案:

答案 0 :(得分:1)

浏览器有两个版本的页面。 orignial加载时的样子和执行所有javascript后的当前版本。如果您查看页面的源代码,则会获得原始代码。

我猜这里发生了同样的事情。通过使用document.mytestform,您可以访问该页面的当前版本。

答案 1 :(得分:0)

发送表单数据的默认方法是GET。这样可以缓存响应。如果您不希望该行为使用POST方法。

答案 2 :(得分:0)

除非您将Expires:-1指定为响应上的标头或更改查询字符串,否则将缓存整个响应,即使使用AJAX也是如此。 一个快速的解决方案是将新的Date()附加为AJAX请求的额外参数 e.g。

$.GET("myURL/myForm.jsp?nocache="+new Date());

有更多优雅的解决方案,但这应该足以证明它是缓存是你的问题