firefox - 为什么 Firefox 不显示正确的默认选择选项?

标签 firefox select caching

我正在制作一个网络应用程序来管理产品 SKU。其中之一是将 SKU 与产品名称相关联。在表格的每一行上,我列出一个 SKU 并显示 <select>带有产品名称的盒子。当前与数据库中该 SKU 关联的产品被赋予类似 selected="selected" 的属性。 。这可以通过 AJAX 进行更改和更新。

很多产品<option> s - 准确地说是 103 - 并且此列表在 <select> 中重复在每一行。

从页面上的另一个输入,我使用 jQuery AJAX 请求来添加新的 SKU/产品关联,为了清楚地表明它们是立即添加的,我将它们插入到的顶部表格带有一点高光效果。随着 SKU 数量增加到超过 10 个左右,如果我刷新页面(从按产品名称排序的数据库中加载所有内容),Firefox 就会开始显示一些默认选择的错误选项。它显示的错误选项并不一致,但它似乎混淆了页面重新加载之前存在的选项。

如果我检查 <select>使用Firebug,select="selected"是正确的<option>标签。刷新页面(或离开并重新键入此页面的 URL 以返回)不会使其正确显示,但硬刷新 (Ctrl+F5) 可以

Chrome 和 IE7 首先都能正确显示此内容。

我的理论是,这是 Firefox 缓存策略错误的结果。听起来对吗?我有什么办法可以在我的代码中说“如果刷新此页面,请将其设为硬刷新 - 从头开始​​重新加载所有内容?”

更新

为了解决这个问题,我改变了策略。

  • 之前,我输入了 <select>有一长串<option>每个表格行上的 s,当前值设置为默认值
  • 现在,我将当前值放入 <span> 中。如果用户单击“更改”按钮,我将替换 <span><select> ,“更改”按钮变为“确认”按钮。如果他们更改选项并单击确认,AJAX 会更新数据库,并且 <select>回到<span> ,这次使用新值。

这有两个好处:

  • 修复了上述错误
  • 它需要页面上更少的 DOM 元素(所有这些多余的 <option> )

最佳答案

我遇到了类似的问题,但是在将 autocomplete="off" HTML 属性添加到每个选择标记后,它就起作用了。 [我使用的是 Firefox 8]

关于firefox - 为什么 Firefox 不显示正确的默认选择选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479233/

相关文章:

javascript - 使用javascript在html中基于下拉选择显示和隐藏div元素

c# - 异步刷新 ASP.NET MVC 中的缓存动态页面

caching - Windows Azure 角色内缓存与共享缓存

apache - Varnish默认VCL访问控制列表

html - 当父元素具有垂直对齐 : top 时,子元素的文本未与 Chrome 中的父元素文本对齐

css - Windows 上的 Firefox 未加载 @FontFace 资源

javascript - 为什么 noautohide 在 XUL 面板中不起作用?

CSS flexbox 包装 FireFox 中的内容(不是 Chrome)

c - 使用select()的套接字多路复用无法按预期方式工作

MYSQL SELECT 跨多个表时速度很慢