Newsgroup: it.comp.lang.javascript
Titolo: Funzione che non funziona con ie

ciao a tutti.
Ho una funzione in javascript che particamente mi fa da filtro per una
tabella:
<script type="text/javascript">
onload=function(){
if(document.getElementById){
    document.getElementById("t1ricerca").style.display="block";
 
    }
}
function Ricerca(IDtabella,voce,valore){
tdh=document.getElementById(IDtabella).tHead.rows[0].cells;
for(i=0;i<tdh.length;i++){
    htext=tdh[i].firstChild.nodeValue;
    if(htext==voce)
        colonna=i;
    }
trs=document.getElementById(IDtabella).tBodies[0].rows;
for(i=0;i<trs.length;i++){
    testo=trs[i].cells[colonna].firstChild.nodeValue;
    if(testo.indexOf(valore)==-1) trs[i].style.display="none";
    }
}
function Ripristina(IDtabella){
trs=document.getElementById(IDtabella).tBodies[0].rows;
for(i=0;i<trs.length;i++){
    trs[i].style.display="";
    }
}
</script>
e poi ho delle select che richiamano questa funzione e fanno il filtro in
base ai parametri passati:
tr><td align="center"><center><label> Commessa:</label>
    <select name="commessa" >
      <option value=""></option>
      <option value="" onclick="javascript:Ripristina('tabella1')">Ripristina
tutto</option>
      <option value="PoLiS"
onclick="Ricerca('tabella1','Commessa','PoLiS')">PoLiS</option>
      <option value="NH90 Integer" onclick="Ricerca('tabella1','Commessa','NH90
Integer')">NH90 Integer</option>
    </select>
tutto questo con mozilla funziona benissimo, con ie no!
Premetto che se al posto delle select passassi i parametri della funzione
con un semplice href tutto funziona anche su ie.
Solo che io ho necessita delle select.
grazie tante
lorenzo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Cosa non ti funziona?
A me puzza un po' quell'onclick sulla singola option...
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M. -- 


cioè cosa vorresti dire? forse è sbagliato?
cmq ho pensato anch'io che fosse l'onclick a non andare, ma secondo te ce un
rimedio?


 te ce un rimedio?
Secondo me (mai provato e non ho tempo per provare) l'onclick sulla option
non viene scatenato.
Però, visto che la tua select è siffatta:
<select name="commessa" >
      <option value=""></option>
      <option value=""
onclick="javascript:Ripristina('tabella1')">Ripristina
tutto</option>
      <option value="PoLiS"
onclick="Ricerca('tabella1','Commessa','PoLiS')">PoLiS</option>
      <option value="NH90 Integer"
onclick="Ricerca('tabella1','Commessa','NH90
Integer')">NH90 Integer</option>
    </select>
Posso dedurre che se non ha value esegue Ripristina(..), altrimenti esegue
Ricerca() cambiando solo il terzo parametro (che è il value della option,
ossia il value della select, quando selezionato).
Se è così gestisci l'onchange della select: se selectedIndex=0 esegui
Ripristina() altrimenti Ricerca() passando come terzo parametro il  value.


 Ripristina() altrimenti Ricerca() passando come terzo parametro il value.
Ho provato a fare cosě ma non mi funziona nemmeno in mozilla non č che ho
sbagliato qualcosa?
<option value="NH90 Integer"
onchange="javascript:if(document.statino.commessa.selectedIndex==0){Ripristina('tabella1');}
else {Ricerca('tabella1','Commessa','NH90 Integer');}">NH90 Integer</option>


 Integer</option>
Leggi sopra: "gestisci l'onchange DELLA SELECT", non della singola option
(che, secondo me, IE non lo gestisce).
Al posto di document.statino.commessa puoi usare this
Non devi mettere il valore come terzo parametro, prova con this.value (senza
le virgolette)
puoi rimuovere quel javascript:
Quindi a grandi linee potrebbe diventare
<select onchange="if(this.value=='') Ripristina('tabella1'); else
Ricerca('tabella1','Commessa',this.value)">
(se non va con onchange sostituisci con onclick, non ricordo mai nella
select quale dei 2 metodi č quello corretto, mi sembra onchange)


 select quale dei 2 metodi č quello corretto, mi sembra onchange)
Tutto ok! Grazie mille adesso la funzione FUNZIONA!
