2010-07-27 4 views
0

У меня есть javascript, который находится в iframe. Когда я проверяю переключатель в iframe, на значение изменения родительского окна. Он отлично работает на firefox, но не на IE ... Может ли кто-нибудь помочь мне с этой проблемой?Проверка радио кнопки в iframe

<script type="text/javascript"> 
function getCheckedValue(radioObj) { 
    if(!radioObj) 
     return ""; 
    var radioLength = radioObj.length; 
    if(radioLength == undefined) 
     if(radioObj.checked) 
      return radioObj.value; 
     else 
      return ""; 
    for(var i = 0; i < radioLength; i++) { 
     if(radioObj[i].checked) { 
      return radioObj[i].value; 
     } 
    } 
    return ""; 
} 

function asd(){ 
var qwer = getCheckedValue(document.forms['uas'].elements['icon']); 
window.parent.document.forms['register'].lang.value = qwer; 
window.parent.document.getElementById("images").getElementsByTagName("img")[0].src = "images/lang/" + qwer + ".png"; 

} 
</script> 

<form name="uas" method="GET" action="" onchange="asd();"> 
<label id="1"><input type="radio" name="icon" value="1">One</label><br><label id="2"><input type="radio" name="icon" value="2">Two ... 
+0

Я не вижу никаких очевидных проблем с кодом. У вас есть ошибки в IE? –

+0

Нет, это просто не работает. – simple

ответ

0

Проблема с вашим кодом - это событие onchange, связанное с элементом формы, IE не поддерживает это. Вместо этого, вы должны использовать OnChange событие для каждой из кнопок радио:

<label id="1"><input type="radio" name="icon" value="1" onchange="asd();">One</label> 
<label id="2"><input type="radio" name="icon" value="2" onchange="asd();">Two</label> 

В качестве альтернативы, вы можете использовать JavaScript, чтобы автоматически добавить слушателя событий.

Кроме этой линии:

window.parent.document.getElementById("images").getElementsByTagName("img")[0].src = "images/lang/" + qwer + ".png"; 

не прав, getElementById уже возвращает изображение, которое нужно так getElementById ("изображения") SRC = ... будет делать трюк..

+0

Я просто изменяю ..onchange = "asd();"> to ... onclick = "asd();"> Возможно, это не лучшее решение, но оно работает. :) – simple

Смежные вопросы