(这在技术上是我之前发布的StackOverflow question的附录,但是我原来的帖子提出了一个不同的问题,这个问题并没有真正涵盖这个主题 - 我不想将我的旧问题编辑为我认为这是不同的,值得自己的页面)
在Firefox 3.5(仅限FF3.5)中浏览我的网站时,我遇到一个带有两个单选按钮的页面,其中包含以下HTML代码:
<input id="check1" type="radio" value="True" name="check" checked="checked"/>
<input id="check2" type="radio" value="False" name="check"/>
此页面按预期呈现,选中“check1”并取消选中“check2”。当我按Control + R刷新页面时,两个单选按钮呈现,但即使原始HTML代码相同(如上所述),它们都未选中。如果我执行缓存未命中刷新(通过Control + F5或Control + Shift + R),页面将返回到您期望的方式。
除了FF3.5之外,我在其他任何浏览器中都没有这个问题。
是什么原因导致这些单选按钮在正常刷新时被重置?我怎么能避免这个?
答案 0 :(得分:0)
原来是bug in Firefox。
答案 1 :(得分:0)
我用这个来强制firefox重置刷新时检查的radiobuttons。
$(function(){ $('input[name="radiobuttongroup"]')[0].checked = true; });
答案 2 :(得分:0)
解决方案:
<form autocomplete="off">
或者使用jQuery:
$(document).ready(function() {
if ($.browser.mozilla) $("form").attr("autocomplete", "off");
});
答案 3 :(得分:0)
当使用jquery更改选择时,我们在firefox中遇到了类似的错误。即使代码根据firebug正确更改,也没有选择单选按钮。我们找到的解决方案是从DOM中删除单选按钮,然后将它们放回去。
var allradiobuttons = $('...');
allradiobuttons.click(function() {
var radiobutton = $(this);
allradiobuttons.removeAttr("checked");
radiobutton.attr("checked", "checked");
var parent = radiobutton.parent();
parent.html(parent.html()); // This is a weird fix
}