2009-06-16 155 views
0

我一直在使用radioobox。我遇到的问题因用户使用的浏览器而异。基本上,我的目标是根据所选射频盒在页面上生成其他数据。这些数据与无线电台保持同步非常重要。通常,这不是问题:当选择更改时,我运行下面的代码。在页面刷新页面时处理Javascript radiobox状态

但是,浏览器经常缓存选择哪个复选框的方式存在问题。 IE似乎要等到脚本完成运行后才切换选择哪个无线电框。另一方面,Firefox会记住选中哪个复选框并相应地显示它,但是checked属性会忽略此选项。我可以强制Firefox通过取消选中并检查复选框(下面两段注释掉的代码行)来保持这些信息同步,尽管这是一种拙劣的方式。

目前,我最好的想法是通过脚本生成广播框以杀死浏览器缓存它们的能力。任何人都可以提供一个不太冒险的选择吗?

<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); 

     } 
    } 
} 

回答

2

既然你还没有表现出任何代码。我假设你想在页面加载时调用selCountry()

通常与像jQuery一个JavaScript库,运行的是当页面加载在$(document).ready()功能,将发生如下显示:

$(document).ready({ 
    selCountry(); 
}); 

没有一个JavaScript库,你需要这样说:

window.onload = function(){ 
    selCountry(); 
} 

通过这种方式,您可以确保页面在完成加载之前找出预先选择了哪个单选按钮。这适用于跨浏览器。

+0

谢谢,这不仅解决了问题,而且在不丢失浏览器的缓存信息的情况下也能正常工作。 – Brian 2009-06-16 21:14:52