11
Firefox为什么没有显示正确的默认选择选项?
我正在制作一个用于管理产品SKUS的网络应用。其中一部分是将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>返回到a <span>。 这有两个好处: 它修复了上述错误 它需要远在页面上较少的DOM元素(所有这些多余<option>S)