Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78

    Strano comportamento di FF e IE con la select

    Ciao al forum
    ho avuto modo di constatare uno strano comportamento di FF ed IE quando carica le select.Precisamente l'errato comportamento su IE riguarda lo script js quanto invece su FF gira benissimo. Al contrario su FF, al refresh della pagina, non ricarica perfetamente la pagina, problema gia conosciuto da molti, come invece fà IE.
    putroppo non ho molta dimestichezza con js ed il codex originario l'ho ricavato in un 3d di questo forum.La domanda è se secondo voi c'è il modo da poter far girare allo stesso modo questo codex in modo da ottenere:
    1)la select al refresh si ricarichi perfettamente impostando la voce a "seleziona" e non invece la voce selezionata precedentemente
    2)lo script js venga elaborato da IE allo stesso modo di FF.

    Un grazie 1000 a tutti.Stano

    vi allego il codex:
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    table {
    border-collapse:separate;
    border:1px solid #0000FF;
    }
    td {
    border:1px solid #0000FF;
    }
    .trSel {
    display:none;
    }
    -->
    </style>
    <script language="javascript" type="text/javascript">
    <!--
    function Visualizza(num){
    // modifica solo il numero totale delle select
    var totSel=2;

    var domBlock=(navigator.appVersion.toLowerCase().index Of('msie')>-1)?'block':'table-row';
    for(var k=1;k<=totSel;k++){
    document.getElementById('td'+k).style.display=(k== num)?domBlock:'none';
    }}
    window.onload=function(){
    var f=document.forms['form1'].elements['animale']
    for(var q=0;q<f.length;q++){
    if(f[q].checked) Visualizza(q+1);
    }}
    //-->
    </script></head>
    <body>



    <font size="5" color="#0000FF">[b]test[b]</font>
    <form name="form1">


    <table>
    <tr>
    <td align="right"><div class="testo2"><font size="4" color="#0000FF">Test:</font></div></td>
    <td colspan="1">
    <select name="animale" value="spada">
    <option value="seleziona" selected="selected">Seleziona</option>
    <option value="0" onclick="Visualizza(1)">rettili</option>
    <option value="1" onclick="Visualizza(2)">uccelli</option>
    <option value="2">mammiferi</option>
    <option value="3">insetti</option>
    <option value="4">pesci</option>
    </select></td>

    <td id="td1" class="trSel">
    <select name="spada">
    <option>Seleziona</option>
    <option>vipera</option>
    <option>rana</option>
    <option></option>
    </select>
    </td>
    <td id="td2" class="trSel">
    <select name="ascia">
    <option>Seleziona</option>
    <option>merlo</option>
    <option>canarino</option>
    <option>piccione</option>
    </select>
    </td></tr>
    </table>
    </form>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78

    Up....

    Up...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78
    Ciao
    sono riuscito a tirar fuori, qui e là, questo codex ma funziona al 75 % xchè rimane un problema:Non sono riuscito a fare in modo che a secondo dell'option cliccato mostri la select dinamica prevista o la nasconda se non prevista qualora si clicchi una seconda volta su una option che non prevedeva la select dinamica.Questo perchè rimane a video la seconda select quando invece dovrebbe sparire...qualcuno riesce a vedere dove sbagio nell codex x nasconderla....
    X il resto, come da titolo, sembra funzionare abbastanza bene....
    Grazie a tutti x la risposta.Stano

    <html>
    <head>
    <title></title>
    <script language="javascript" type="text/javascript">
    <!--
    // Pulldown menù dinamici, by Alberto Sartori (ras78@libero.it)
    //var animali = new Array("Seleziona","Mammiferi", "Rettili", "Uccelli", "pesci");
    var Mammiferi = new Array("Seleziona","erbivori","carnivori","onnivori ");
    var Rettili = new Array("Seleziona","serpenti","rane","lucertole");
    var carnivori = new Array("Seleziona","felini","canini");


    function swapOptions(the_array_name){
    var numbers_select = window.document.form1.tipologia;
    var the_array = eval(the_array_name);
    setOptionText(window.document.form1.tipologia,the_ array);
    }

    function setOptionText(the_select, the_array){
    the_select.length=the_array.length;
    for (c=0; c < the_array.length; c++){
    the_select.options[c].text = the_array[c];}}

    function show(id,id2){
    if (document.all){
    document.all[id].style.visibility="visible";
    document.all[id2].style.visibility="hidden";
    }else
    if (document.layers){
    document.layers[id].visibility="show";
    document.layers[id2].visibility="hide";
    }
    else
    if (document.getElementById)
    {
    document.getElementById(id).style.visibility="visi ble";
    document.getElementById(id2).style.visibility="hid den";
    }
    }
    //-->
    </script></head>
    <body onload="document.form1.animali.selectedIndex=0;">



    <font size="5" color="#0000FF">[b]test[b]</font>
    <form name="form1">


    <table>
    <tr>
    <td align="right" colspan="1"><font size="4" color="#0000FF">Tipologia</font>
    <select name="animali" style="Width:205" onChange="swapOptions(window.document.form1.animal i.options[selectedIndex].text);">
    <option value="seleziona">Seleziona</option>
    <option value="1">Mammiferi</option>
    <option value="2">Rettili</option>
    <option value="3">Uccelli</option>
    <option value="4">Pesci</option>
    </select></td></tr>
    <tr><td align="right" colspan="1"><font size="4" color="#0000FF">Composizione</font>
    <select size="1" name="tipologia" style="Width:205" onChange="if (animali.value == 1){show('a3')}else if (animali.value == 2){show('a2')}else{alert('tutto ok')};">
    <option>seleziona</option>
    </select></td></tr>
    <tr>
    <td align="right" colspan="1" ID="a2" STYLE="visibility:hidden;"><font size="4" color="#0000FF">Piano</font>
    <SELECT name="elenco" style="Width:205" onChange="if (this.selectedIndex!=0) {self.location.replace(this.options[this.selectedIndex].value)}">
    <option value="seleziona">seleziona</option>
    <option value="0">Mucca</option>
    <option value="1">Zebra</option>
    <option value="2">Giraffa</option>
    <option value="3">Bisonte</option>
    </SELECT>
    </td>
    <td align="right" colspan="1" ID="a3" STYLE="visibility:hidden;"><font size="4" color="#0000FF">Piano</font>
    <SELECT name="elenco" style="Width:205" onChange="if (this.selectedIndex!=0) {self.location.replace(this.options[this.selectedIndex].value)}">
    <option value="seleziona">seleziona</option>
    <option value="0">leone</option>
    <option value="1">Leopardo</option>
    <option value="2">Tigre</option>
    <option value="3">pantera</option>
    </SELECT>
    </td></tr>

    </table>
    </form>
    </body>
    </html>

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78

    Up

    Ciao....
    Nessuno riesce a darmi un amno sul problema o lo spunto di come potrei risolvermelo da solo?

    Grazie 1000 x la pazienza.....
    Saluti.

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    show si aspetta sempre 2 valori, tu ne passi solo uno ma comunque hai istruzioni che utilizzano il secondo argomento, id2

    document.getElementById(id2).style.visibility="hid den";
    questo genera sempre un errore e sicuramente non riesce a nascondere alcunche'
    quindi per iniziare liberati di quell' id2 e considera solo id

    puoi risolvere in tanti modi diversi ma solo tu conosci aspetti del progetto che fanno preferire una via ad un altra, x es., se sai che le select possonno diventare tante cicla per i loro ID settandole tutte nascoste tranne quella con ID uguale all' argomento passato alla funzione (id) che sara' settata visibile

    spero sia comprensibile
    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78

    Per prima cosa ti ringrazio x la risposta......

    ho tolto la id2 e sto cercando di capire come strutturare la ciclica sulle select.
    fondamentalmente lavorerò solo su 3 select(non di più)...dove le prime due saranno sempre fisse...ma solo la terza deve rendersi vivibile o meno a seconda della scelta sulle oprion della prima select.
    Da qui viene il problema quando devo simulare le possibilità che l'utente finale può fare....nel caso che sbaglia la scelta della oprion sulla 1à select, e di conseguenza si rende visibile la 3à select, si accorge di aver commesso l'errore, e modifica la option sulla 1à select, cliccando su quella giusta, a questo punto la 3à dovrebbe nascondersi.....ma, x come è strutturato il codex, non riesco a capire dove devo modificarlo x farsi che questo avvenga


    Spero di aver meglio esposto il mio problema.....e che il codex postato qui, una volta terminato, possa aiutare anche gli altri che hanno con lo stesso problema.....

    Volendo, se i moderatori sono d'accordo, possono chiudere il thread perchè il codex risolve il titolo esposto.....ed aprirne uno nuovo dato che il problema attuale riguarda una'altro argomento.

    Saluti.

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    restiamo in questo thread, eventualmente modifico io il titolo

    dici di avere 3 select ma io ne vedo 4, il ciclo di cui parlavo coinvolge le ultime 2, di cui una resta invisibile e l' altra visibile

    sono e resteranno 2? puo' non servire ciclare
    aumenteranno? conviene considerarle in un ciclo

    non avevo considerato nel mio messaggio precedente la possibilita' di cambiare la selezione nelle prima select, ma non mi sembra troppo complesso nascondere comunque le select eventualmente apparse prima di procedere a popolare la seconda

    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78

    Auguri di Buon Anno 2007....

    ...principalmente, x come lo vorrei concepire, il flusso è così:
    La 1a select popola la seconda tra mammiferi o rettili e così via....
    la 2a select, popolata, fà in modo di popolare la 3a ma solo se è previsto.Non tutte le option della 2a select devono popolare la 3a select.Da qui nasce il mio problema xchè devo prevedere il fatto che se l'utente si rende conto di aver sbagliato, ed ha fatto in modo da popolare la 3a select, cliccando in un secondo momento sulla option della 2a select ( e qui la correzione al suo click errato iniziale) dove non è previsto nessun popolamento, necessariamente in nuovo click deve nascondere la 3a select xchè non necessaria.

    Saluti.Stefano.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78

    ..Continuo...

    ..avevo preso in considerazione il fatto che sulla option della 2a select, dove non è previsto il popolamento della 3a select, faccia in modo da nascondere la select a prescindere....ma non so dove inserire la onchange che carichi questa funzione...dato che la seconda select si popola tramite un'altra funzione in modo dinamico....

    è un po complicato da implementare e le mie conoscenze in js non sono così approfondite...anzi direi che sono piuttosto scarse.

    Saluti.

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    78

    Up...

    Up...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.