Kolejna wpadka Opery, czyli Opera jest zła part 2

Po tym jak już raz znalazłem błąd w Operze, który został naprawiony przyszła pora na kolejne starcie. Nie wiem, czy po prostu w Operze jest tyle błędów, czy może ja mam jedynie takie szczęście ciągle na nie wpadać…

W każdym bądź razie do rzeczy: Wszystko ogranicza się do tego, że Opera nie wykonuje akcji onClick() na ukrytych polach formularza.

Przykład jest trochę zakręcony, bo długo myślałem i kombinowałem jak go przedstawić :) Całośc powinna działać tak:

  1. Klikam na któryś <label> i powinno się wybrać od razu właściwe pole radio.
  2. Zaznaczenie pola radio powinno uruchomić akcję onClick, które wyświetla alert() z wartością zaznaczonego radio.

W Firefoksie działa wszystko prawidłowo - pojawia się jak powinno pole alert. Natomiast w operze nic się nie dzieje. A gdy zlikwiduje się regułkę ukrywającą pola (display:none) - nagle wszystko zaczęło działać.
Znalezienie tego błędu zajęło mi dwa dni - ciekawe ile jeszcze jest takich niespodzianek w Operze… Na szczęście działa chociaż onChange()…

Kod testowy:

 <style>
  input[type='radio'] {display:none}
</style>

<form id=”f” action=”#” method=”get”>
  <input type=”radio” name=”r” id=”r1″ value=”radio1″
     onClick=”fsubmit()”/><label for=”r1″>Radio 1</label><br/>
  <input type=”radio” name=”r” id=”r2″ value=”radio2″
     onClick=”fsubmit()”/><label for=”r2″>Radio 2</label><br/>
</form>

<script type=”text/javascript”>

function getCheckedValue(name)  {
  inputs = document.getElementsByTagName(’input’);
  for(i=0; i<inputs.length; i++) {
    if(inputs[i].name==name && inputs[i].checked == true) {
      return inputs[i].value;
    }
  }
  return ‘none selected’;
}

function $(o) {
  return document.getElementById(o);
}

function fsubmit() {
  alert(’Radio value: ‘+getCheckedValue(’r'));
}

</script>

1 Komentarz dotychczas

  1. Maksymus007 on grudzień 29, 2007

    A ja nie widze bledu - niby dlaczego zmiana pola ma powodowac akcje OnCLick? Jak juz to OnChange. A niewidocznego elementu kliknac sie nie da raczej…

Leave a reply