2008-11-27 93 views
3

我对此有点大惊小怪,所以我想知道是否有任何SOE之前遇到过它。奇怪的Firefox输入错误

我有一个基本平坦的页面,其中有许多输入=文本,按照默认值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在内部由类似于“users/1”的RESTlike HTTPModule映射到“user.aspx?id = 1”。

版本1没问题。版本2 渲染后给我的输入值依次为E,A,B,D,E,但我没有看到特别的原因。

我可以查看源和值=“X”是正确的,并在萤火DOM检查默认值是正确的,但是不是。

  • 这不是CSS问题 - 从页面中删除CSS。
  • 这不是JS问题 - JS已关闭。
  • 这不是一个HTML问题 - 标记在所有情况下都是完全相同的。

唯一的区别是如何请求标记。这就像Firefox以某种方式与服务器纠缠在一起。

有没有人听说过这样的事情?我惊呆了。

编辑:这也是一个FF问题。 IE,Opera和Chrome在页面上都很好。

编辑2:我的字面意思是请求的路径。一个版本是要求http://localhost/user.aspx?id=1,其他(失败)版本是http://localhost/users/1并且此版本由HTTPModule映射到第一个路径。 name =不会帮助,因为默认值不是人类输入的,它们在源服务器中。

回答

1

我敢打赌,它与映射的url没有文件扩展名有关,所以内容类型没有被firefox正确推导出来。尝试在ASP代码中明确地将内容类型设置为“text/html”,并查看是否修复了它。

+0

可能接近真相,因为添加doctype定义似乎可以解决它。 – annakata 2008-12-09 10:21:49

+0

我会考虑这个答案,但任何有此问题的人都应该在下面看到我自己的回复。从来没有听说过Firefox团队的任何事情,我已经从公司那里找到了我曾经遇到过这个问题的公司。 – annakata 2010-11-04 11:19:55

0

您的意思是C,A,B,D,E?我敢打赌,一个属性中的一个不加引号或不匹配的“正在搞乱C的td标签的解析。当表中有一个标签不能正确包含在tr/td/etc中时,firefox将它移动到。页面

+0

Nope:肯定E,A,B,D,E,重复一个值,不存在并回想起DOM浏览器具有defaultValue的正确数据。我会重申,这不会是标记问题,因为* exact *相同的标记可以从其他浏览器中正确呈现。 – annakata 2008-11-28 08:35:27

0

你说:“唯一的区别是标记是如何要求” 你能就此展开这是某种形式的DHTML交付, 或都在工作和非工作情况下,完整的HTML页面?

是否添加不同的名称=“”参数帮助?Firefox没有 在某些情况下,尝试当 你回到以前的页面保存先前输入的值,我已经看到了它弄糊涂 是出现名称冲突时。

编辑:你说的名字不会帮助,但你试过吗?

+0

当然:见编辑#2 – annakata 2008-11-28 09:45:56

0

我已经不完全找到了解决这个和它的重复性似乎是一些因素我还没有确定的条件,但我有一些偶然的证据表明,这似乎是东西在FF发生的组合(可能是对另一个标签中内容的反应 - 推测)和该页面没有严格的文档类型

我会留下这个开放的情况下,以防其他人遇到并找到这个奇怪的小gremlin的原因。

0

Firefox在刷新和后退/前进导航之间保存表单数据非常积极。

我想我会尝试添加一个autocomplete="off"属性的表单输入,看看是否有帮助。

我想firefox可能会将当前的URI与引用的URI进行比较,看看它应该如何处理它保存的表单数据。在你的第二个例子中,两者不匹配。

0

如果您可以创建一个重新创建此案例并将其提交给Firefox团队,以便他们可以修复它。

0

通过HTML Validator运行您的代码,以查看是否有任何缺失的语法片段导致它呈现奇怪。