3

我对此有点吃惊,所以我想知道是否有任何 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 的顺序排列,但我看不出这个顺序的原因。

我可以查看源代码并且 value="X" 是正确的,并且在 firebug 中的 DOM 检查中defaultValue是正确的,但不是。

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

唯一的区别是如何请求标记。就好像 Firefox 以某种方式与服务器发生了量子纠缠。

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

编辑:这也绝对是一个 FF 问题。IE、Opera 和 Chrome 都可以正常使用该页面。

编辑2:我的字面意思是请求的路径。一个版本是对http://localhost/user.aspx?id=1的请求,另一个(失败的)版本是对http://localhost/users/1的请求,该版本由 HTTPModule 映射到第一个路径。name= 无济于事,因为默认值不是人工输入的,它们在源中提供。

4

7 回答 7

1

我敢打赌,它与映射的 url 没有文件扩展名有关,因此 Firefox 没有正确推断出内容类型。尝试在 ASP 代码中将内容类型显式设置为“text/html”,看看是否可以修复它。

于 2008-12-08T21:30:07.447 回答
0

你是说C,A,B,D,E吗?我敢打赌,属性中未加引号或不匹配的 " 会弄乱 C 的 td 标签解析。当表中的标签未正确包含在 tr/td/etc 中时,firefox 会将其移至前面的页。

于 2008-11-27T18:04:52.453 回答
0

你说:“唯一的区别是如何请求标记。” 你能扩展一下吗?这是某种 DHTML 交付,还是工作和非工作情况都是完整的 HTML 页面?

添加不同的 name="" 参数有帮助吗?在某些情况下,当您返回上一页时,Firefox 确实会尝试保留以前输入的值,而且我之前看到它在出现名称冲突时会感到困惑。

编辑:你说名字无济于事,但你试过了吗?

于 2008-11-28T08:51:53.190 回答
0

我还没有完全找到解决方案,它的可重复性似乎取决于我尚未确定的某些因素,但我有一些偶然的证据表明这似乎是FF 中发生的事情的组合(可能是对内容的回应另一个选项卡 - 投机)和相关页面没有严格的文档类型

我会保持打开状态,以防其他人遇到并找到这个奇怪的小精灵的原因。

于 2008-12-03T15:32:03.650 回答
0

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

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

我认为 Firefox 可能会将当前 URI 与引用 URI 进行比较,以查看它应该如何处理它保存的表单数据。在您的第二个示例中,两者不匹配。

于 2008-12-18T20:48:26.297 回答
0

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

于 2009-03-01T02:07:51.330 回答
0

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

于 2009-03-01T02:10:42.150 回答