HTML单击IE中的Works,而不是FireFox,Chrome

时间:2008-11-10 09:40:55

标签: html internet-explorer firefox-3

这必须简单:我根据具有两个选项的表单设置一个框架页面,其中包含两个可能的目标框架源。我使用OnClick事件来捕获用户的单击以显示相应的页面。它在Internet Explorer 7中正常工作,交换两个源页面。 FireFox 3和Chrome仅显示默认来源。

HEAD脚本部分:

function SwapInlineFrameSource()

{
var rsRadio, rsiFrame;

rsRadio=document.getElementById('County');

rsiFrame=document.getElementById('RatesFrame')

if (rsRadio.checked===true) {

    rsiFrame.src="SantaCruzRates.htm";

    }

else {

    rsiFrame.src="DelNorteRates.htm";

    }

}

BODY表格部分(评论显示在这里):

<input type="radio" value="SC" checked name="County"   onclick="SwapInlineFrameSource()"> 
    Santa Cruz
<input type="radio" value="DN" name="County" onclick="SwapInlineFrameSource()" > 
    Del Norte

我错过了什么? (实例:http://www.raintrees.com/rates.html

谢谢!

先生

3 个答案:

答案 0 :(得分:7)

您正在使用getElementByID,但未指定输入的ID。也许考虑一下这个:

function SwapInlineFrameSource(rdoButton)
{
  rsiFrame = document.getElementById("RatesFrame");
  rsiFrame.src = rdoButton.value;
}

<input type="radio" value="SantaCruzRates.htm" checked="checked" name="County" onClick="SwapInlineFrameSource(this);">Santa Cruz</input>
<input type="radio" value="DelNorteRates.htm" name="County" onClick="SwapInlineFrameSource(this);">Del Norte</input>

答案 1 :(得分:2)

你的代码错了....

var rsRadio, rsiFrame;
rsRadio=document.getElementById('County');
rsiFrame=document.getElementById('RatesFrame')
if (rsRadio.checked===true) {

我认为你的意思是getElementsByName而不是ID,因为这些单选按钮上没有县的ID。

实际上你需要确定选中了哪个单选按钮,这样就可以了(假设只有2个选项)

if(document.getElementsByName()[0].checked){
    // show Santa Cruz Rates
}else{
    // show other rates
}

答案 2 :(得分:0)

我不相信getElementById适用于firefox中的帧。我一直使用帧[“frameID”],这似乎更一致。