Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: IE niepoprawnie obsługuje JS (document.getElementById("...").disabled)
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
szczurcio
Witam, mój problem dotyczy (pewnie jak zwykle) wyłącznie IE; przy takim kodzie:



  1. <form action="" method="post">
  2.  
  3. <p><input type="radio" name="radiobutton" value="1" onchange="disable(this.value);" /> radio 1</p>
  4.  
  5. <p><input type="radio" name="radiobutton" value="2" onchange="disable(this.value);" /> radio 2</p>
  6.  
  7. <p><input type="radio" name="radiobutton" value="3" onchange="disable(this.value);" /> radio 3</p>
  8.  
  9.  
  10. <select id="list" >
  11. <option value="1">1</option>
  12. <option value="2">2</option>
  13. <script type="text/javascript">
  14.  
  15.  
  16. function disable(nr) {
  17.  
  18. if (nr == 1) {
  19.  
  20. document.getElementById("list").disabled = "disabled";
  21.  
  22. } else {
  23.  
  24. document.getElementById("list").disabled = "";
  25.  
  26. }
  27.  
  28. } </script>


Wszystkie przeglądarki działają jak trzeba, tj. po kliknięciu radio 1 od razu wyłączają select, a po kliknięciu radio2/3 "włączają", tylko IE robi coś, że po zaznaczeniu radio1 trzeba kliknąć na select, dopiero wtedy jest ono blokowane, to samo w drugą stronę (z odblokowywaniem). Próbowałem i lokalnie, i z internetu. Czy ktoś wie, co powoduje taki problem?
luckyps
proponuje uzywac:

  1. .disabled = false/true;


i zmienic
  1. onchange

na
  1. onclick
Rid
A niech Pan spróbuje to przerobić to:

  1. if (nr == 1) {
  2. document.getElementById("list").disabled = "disabled";
  3. } else {
  4.  
  5. document.getElementById("list").disabled = ""};
  6. }


Na
  1. var el=document.getElementById("list");
  2. if (nr == 1) {
  3. el.disabled=false;
  4. } else {
  5. el.disabled=true;
  6. }


O chyba luckyps mnie wyprzedził rolleyes.gif
szczurcio
I po sprawie smile.gif Wielkie dzięki, obu daję po "Pomógł".
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.