HTML Click работает в IE, а не в FireFox, Chrome - PullRequest
1 голос
/ 10 ноября 2008

Это должно быть что-то простое: я создал страницу фреймов с двумя возможными источниками для целевого фрейма на основе формы с двумя вариантами. Я использовал событие OnClick для захвата клика пользователя, чтобы показать соответствующую страницу. Он отлично работает в Internet Explorer 7, меняя две исходные страницы. FireFox 3 и Chrome показывают только источник по умолчанию.

HEAD Script:

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)

Спасибо!

Г

Ответы [ 3 ]

7 голосов
/ 10 ноября 2008

Вы используете getElementByID, но вы не указываете идентификаторы для своих входов. Возможно, рассмотрим это вместо:

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>
2 голосов
/ 10 ноября 2008

Ваш код неверный ....

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

Я предполагаю, что вы имеете в виду getElementsByName, а не ID, потому что у вас нет идентификатора графства на этих переключателях.

На самом деле вам нужно определить, какой переключатель отмечен, чтобы вы могли что-то вроде (при условии, что есть только 2 варианта)

if(document.getElementsByName()[0].checked){
    // show Santa Cruz Rates
}else{
    // show other rates
}
0 голосов
/ 10 ноября 2008

Я не верю, что getElementById работает с фреймами в Firefox. Я всегда использовал frame ["frameID"], который, кажется, работает более последовательно.

...