Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] problem ze skryptem
Forum PHP.pl > Forum > Po stronie przeglądarki
jawka7
mam taki skrypt kto ry dziala we frontpage a jak tylko wrzuce w przegladarke firefox nic go nie rusza, czemu tak sie dzieje??

Kod
<script language='javascript'>
function podkategoria()
{
var a=document.getElementById('kat').value;
document.getElementById('pod').innerHTML=a;
}
</script>

<select name='kat' onClick='podkategoria()'>
<option value='kategoria1'>kategoria1</option>
<option value='kategoria2'>kategoria2</option>
<option value='kategoria3'>kategoria3</option>
</select>

<span id='pod'></span>
skowron-line
Po pierwsze primo
- nie onclick tylko onChange
Po drugie primo
- nie tak sie odwołujemy do listy rozwijanej z poziomu JS
Po trzecie primo ultimo
- jeżeli dobrze zrozumiałem to ten kod powinnien mniej wiecej tak wyglądać
  1. <script language='javascript'>
  2. function podkategoria( value )
  3. {
  4. document.getElementById('pod').innerHTML=value;
  5. }
  6.  
  7. <select name='kat' onchange='podkategoria( this.value )'>
  8. <option value='kategoria1'>kategoria1</option>
  9. <option value='kategoria2'>kategoria2</option>
  10. <option value='kategoria3'>kategoria3</option>
  11.  
  12. <span id='pod'></span>


P.s Jeżeli chcesz zacząć się bawić w JS to zainteresuj się jedną z wielu dostępnych bibliotek, a nie zasmiecasz sobie głowę czystym JS.
jawka7
dzieki wielkie winksmiley.jpg zapamietam to i biore sie za ksiazke winksmiley.jpg

ok wszystko dziala pieknie we firefox, ale czemu mi teraz onchange nie dziala w ie??
paziek
bo onchange jest zbugowane w IE.
Użyj combo onmousedown+onclick.

Działa pod FF i Operą, powinno pod IE. Nie sprawdzę, bo musiałbym odpalać virtualną maszynę, a to mi zamula PC.
Sprawdź i powiedz smile.gif
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE      html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3.                  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html            xmlns="http://www.w3.org/1999/xhtml"
  5.                  xml:lang="pl"
  6.                  lang="pl">
  7. <head>
  8.     <meta http-equiv="Content-Type"            content="text/html; charset=utf-8" />
  9.     <title>AAAAAAAARGH</title>
  10.     <meta http-equiv="Content-Language"      content="pl" />
  11.     <meta name="Author"                              content="Paziek" />
  12.  
  13.     <link rel="icon" type="image/x-icon" href="./img/favicon.ico" />
  14. </head>
  15. <body>
  16.     <script type="text/javascript">
  17.           function $(a) {return document.getElementById(a);}//to możesz sobie skasować, użyłem tylko do przykładowego kodu, odpalanego przy zmianie selecta
  18.           var oldValue=null,firstClick=null;
  19.           function onchangeFix(e) {
  20.                 if(!e) e=window.event;
  21.                 var t=e.target || e.srcElement;
  22.                 if(e.type==='mousedown' && !oldValue) oldValue=t.value;
  23.                 else if(e.type==='click') {
  24.                       if(t.value!==oldValue || oldValue===null) {//tutaj kod wykonywany w monecie kiedy wartość selecta się zmieniła
  25.                             $('val').lastChild.innerHTML=t.value;//to możesz sobie skasować, użyłem tylko do przykładowego kodu, odpalanego przy zmianie selecta
  26.                             $('count').lastChild.innerHTML++;//to możesz sobie skasować, użyłem tylko do przykładowego kodu, odpalanego przy zmianie selecta
  27.                       }
  28.                       if((e.srcElement && firstClick) || (e.target && t.nodeName==='OPTION')) {oldValue=null;firstClick=null;}
  29.                       else firstClick=true;
  30.                 }
  31.           }
  32.     </script>
  33.     <select onmousedown="onchangeFix(event);" onclick="onchangeFix(event);" ondeactivate="oldValue=null,firstClick=null;">
  34.           <option value="jajo">Jajo</option>
  35.           <option value="chicken">Chicken</option>
  36.           <option value="cośtam">Cośtam</option>
  37.     </select>
  38.     <p id="val"><span>Zwrócona wartość: </span><span></span></p>
  39.     <p id="count"><span>Ile razy odpalił się skrypt: </span><span>0</span></p>
  40. </body>
  41. </html>
jawka7
nie dziala nadal ;/ musze miec funkcje ktora odpala jakas funkcje w javascript po nacisnieciu na ktoras z opcji select orac po najechaniu na obrazek, mam onchange przy obrazku onclick przy select wszysttko dziala pieknie na firefox i na operze, ale ie nadal nic nie rusza ;/

nadal nie mam sposobu na te ie podpowiedzcie co moze byc nie tak;/ w ogule nie lapie onchange ani onclicka ;/
paziek
Poprawiłem skrypt.
Teraz działa pod IE oraz FF.

Możesz też spróbować atrybutu onpropertychange, ale z tego co testowałem, to odpala się dwa razy przy zmianie wartości selecta. Czyli jeśli np. masz skrypt, który wysyła dane na serwer przy zmianie selekta, to raczej tego nie używaj.
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.