2008-11-10 174 views
1

这一定很简单:我根据具有两个选项的表单为目标框架设置了两个可能的源框架页面。我使用了OnClick事件来捕获用户的点击以显示相应的页面。它在Internet Explorer 7中正常工作,交换两个源页面。 FireFox 3和Chrome仅显示默认来源。HTML点击在IE浏览器中工作,而不是Firefox,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"; 

    } 

} 

身体形态节(评论在这里显示出来):

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

我缺少什么? (Live example:http://www.raintrees.com/rates.html

谢谢!

先生

+0

=== ===是什么?真的很平等吗? – 2008-11-10 09:42:19

+0

好问题。这可能是原因。尝试:if(rsRadio.checked){... – bart 2008-11-10 09:47:05

+0

它防止类型强制“1”== 1将为真“1”=== 1将由于不同的类型而为false。 – 2008-11-10 09:47:51

回答

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> 
0

我不相信的getElementById适用于在Firefox帧。我一直使用框架[“frameID”],这似乎更加一致。

2

你的代码是错误的....

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

我假定你的意思getElementsByName,而不是ID becasue你没有县的这些单选按钮的ID。

事实上,你需要确定哪个单选按钮被选中,所以你可以像一些事情(假设有永远只能在2个选项)

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