我对此有点惊讶,所以我想知道之前是否有任何SOers遇到过它。
我有一个基本上是平面的页面,其中有一些input = text在标记中播种,默认值为A,B,C,D,E依次。标记在视图源中如下所示:
<td class="action invoice">
<a href="#foo">Toggle Invoice</a>
<div class="data">
<input type="text" class="formatted" value="A" />
<a href="#" class="notes" title="Add Note">Add Note</a>
</div>
</td>
迭代了多行A-> E。
该页面由ASP.NET 2.0应用程序创建。版本1仅仅是“user.aspx?id = 1”版本2是由RESTlike HTTPModule从“users / 1”到“user.aspx?id = 1”的内部路径映射。
版本1没问题。渲染后的第2版 可以重复输入E,A,B,D,E顺序的输入,但我没有理由看到该顺序。
我可以查看source并且value =“X”是正确的,并且在firebug中的DOM检查中 defaultValue 是正确的,但值不是。
唯一的区别是如何请求标记。这就像Firefox在某种程度上与服务器纠缠在一起。
有没有人听说这样的事情?我惊呆了。
编辑:这也是一个FF问题。 IE,Opera和Chrome在页面上都很好。
编辑2 :我的字面意思是请求的路径。一个版本是对 http://localhost/user.aspx?id=1 的请求,另一个(失败)版本是 http://localhost/users/1 ,此版本由HTTPModule映射到第一个路径。 name =无济于事,因为默认值不是人类输入的,它们在服务源中。
答案 0 :(得分:1)
我打赌它与映射的url没有文件扩展名有关,因此firefox没有正确推断出内容类型。尝试在ASP代码中明确地将内容类型设置为“text / html”,看看是否可以修复它。
答案 1 :(得分:0)
您的意思是C,A,B,D,E?我的赌注是,在一个属性中的一个不带引号或不匹配的“正在搞乱解析c的td标签。当一个表中的标签没有正确包含在tr / td / etc中时,firefox将其移动到之前的页。
答案 2 :(得分:0)
你说:“唯一的区别是如何请求标记。” 你能扩展一下吗?这是某种DHTML交付, 或者是工作和非工作案例的完整HTML页面?
添加不同的name =“”参数会有帮助吗? Firefox确实如此 在某些情况下,尝试保留以前输入的值 你回到上一页,我看到它感到困惑 在有名称冲突之前。
编辑:你说名字无济于事,但是你试过吗?
答案 3 :(得分:0)
我还没有找到解决方案,它的可重复性似乎取决于我尚未确定的某些因素,但我有一些偶然的证据表明这似乎是某事的组合发生在FF(可能是对另一个标签中的内容的反应 - 推测)和 有问题的页面没有严格的doctype 。
如果有其他人遇到过这种奇怪的小gremlin,我会保持开放状态。
答案 4 :(得分:0)
Firefox非常积极地在刷新和后退/前进导航之间保存表单数据。
我想我会尝试在表单输入中添加autocomplete="off"
属性,看看是否有帮助。
我认为firefox可能会将当前URI与引用URI进行比较,以了解它应该如何处理它保存的表单数据。在你的第二个例子中,两者不匹配。
答案 5 :(得分:0)
如果你可以创建一个重新创建它的案例并将其bug report提交给Firefox团队,以便他们可以修复它。
答案 6 :(得分:0)
通过HTML Validator运行您的代码,看看是否有任何遗漏的语法部分导致它呈现奇怪。