2008-11-10 231 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 
} 
相關問題