我一直在玩一个radiobox。我遇到的问题因用户使用的浏览器而异。基本上,我的目标是根据所选的radiobox在页面上生成其他数据。重要的是,这些数据与无线电控制台保持同步。通常情况下,这不是问题:我在选择更改时运行以下代码。
但是,浏览器经常缓存选中哪个复选框的方式存在问题。 IE似乎要等到脚本运行完毕然后切换选择了哪个radiobox。另一方面,Firefox会记住选中了哪个复选框并相应地显示它...但是checked属性会忽略它。我可以通过取消选中并选中复选框(下面两条注释掉的代码行)来强制Firefox保持同步信息,尽管这有点像hacky。
目前,我最好的想法是通过脚本生成无线电盒,以消除浏览器缓存它们的能力。任何人都可以提供一个不那么讨厌的选择吗?
<br />
<input type="radio" name="DataRadio" checked="checked"
Value="V1" onclick="doDataRadio()" />V1
<br />
<input type="radio" name="DataRadio"
Value="V2" onclick="doDataRadio()" />V2
<br />
<input type="radio" name="DataRadio"
Value="V3" onclick="doDataRadio()" />V3
function selCountry()
{
var len = theForm.DataRadio.length;
for (i = 0; i < len; i++) {
if (theForm.DataRadio[i].checked)
{
chosen = theForm.DataRadio[i].value;
//theForm.DataRadio[i].checked = false;
//theForm.DataRadio[i].checked = true;
alert(chosen);
}
}
}
答案 0 :(得分:2)
因为您还没有显示更多代码。我假设你想在页面加载时调用selCountry()
。
通常使用像 jQuery 这样的javascript库,在$(document).ready()
函数中运行页面时运行一些内容,如下所示:
$(document).ready({
selCountry();
});
没有javascript库,你需要这样:
window.onload = function(){
selCountry();
}
这样,您可以确保在找到预先选择了哪个单选按钮之前完成页面加载。这适用于跨浏览器。