1

这一定很简单:我基于具有两个选项的表单设置了一个框架页面,其中包含两个可能的目标框架来源。我使用 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";

    }

}

身体形式部分(评论显示在这里):

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

谢谢!

先生

4

3 回答 3

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>
于 2008-11-10T09:51:16.987 回答
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
}
于 2008-11-10T09:50:36.083 回答
0

我不相信 getElementById 适用于 Firefox 中的帧。我一直使用框架[“frameID”],它似乎更一致地工作。

于 2008-11-10T09:48:08.523 回答