Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    scelta con radio per select a comparsa

    Ciao a tutti sto cercando di risolvere un problema che mi si è posto con la creazione di un form di ricerca, premetto di aver cercato in giro soluzioni ma non riesco a far funzionare il tutto..

    la situazione è la seguente:

    ho 4 componenti radio nel form e 4 select nascoste con display:none. Vorrei che apparisse solo una delle 4 select in base agli eventi onchange dei radio.

    Ho testato il codice con firefox e funziona perfettamente, mentre con explorer con qualsiasi versione non mostra la select che dovrebbe apparire fino a quando non clicco con il mouse fuori dall'area dei radio

    posto qui di seguito il codice che ho utilizzato:

    Codice dei radio:
    codice:
    Scelta A1<input type="radio" onchange="checkRadioScelta()"  name="sceltaA" value="A1"/>Scelta A2<input type="radio" onchange="checkRadioScelta()"  name="sceltaA" value="A2"/>
    
    
    Scelta B1<input type="radio" onchange="checkRadioScelta()"  name="sceltaB" value="B1"/>Scelta B2<input type="radio" onchange="checkRadioScelta()"  name="sceltaB" value="B2"/>
    Codice delle select:
    codice:
    <select style="display: none" name="sceltaSelect1" id="sceltaSelect1">
    <option value="A"></option>
    ...
    ...
    </select>
    <select style="display: none" name="sceltaSelect2" id="sceltaSelect2">
    <option value="B"></option>
    ...
    ...
    </select>
    <select style="display: none" name="sceltaSelect3" id="sceltaSelect3">
    <option value="C"></option>
    ...
    ...
    </select>
    <select style="display: none" name="sceltaSelect4" id="sceltaSelect4">
    <option value="D"></option>
    ...
    ...
    </select>
    Codice js:
    codice:
    function checkRadioScelta(){
    
    if(document.nomeform.sceltaA[0].checked == true && document.nomeform.sceltaB[0].checked == true)
    {
     document.nomeform.sceltaSelect1.style.display = "block";
     document.nomeform.sceltaSelect2.style.display = "none";
     document.nomeform.sceltaSelect3.style.display = "none";
     document.nomeform.sceltaSelect4.style.display = "none";
    }
     
    if(document.nomeform.sceltaA[1].checked == true && document.nomeform.sceltaB[0].checked == true)
    {
     document.nomeform.sceltaSelect1.style.display = "none";
     document.nomeform.sceltaSelect2.style.display = "block";
     document.nomeform.sceltaSelect3.style.display = "none";
     document.nomeform.sceltaSelect4.style.display = "none";
    }
    
    if(document.nomeform.sceltaA[0].checked == true && document.nomeform.sceltaB[1].checked == true)
    {
     document.nomeform.sceltaSelect1.style.display = "none";
     document.nomeform.sceltaSelect2.style.display = "none";
     document.nomeform.sceltaSelect3.style.display = "block";
     document.nomeform.sceltaSelect4.style.display = "none";
    }
    
    if(document.nomeform.sceltaA[1].checked == true && document.nomeform.sceltaB[1].checked == true)
    {
     document.nomeform.sceltaSelect1.style.display = "none";
     document.nomeform.sceltaSelect2.style.display = "none";
     document.nomeform.sceltaSelect3.style.display = "none";
     document.nomeform.sceltaSelect4.style.display = "block";
    }
    
    }
    PLS HELP perchè non so più dove sbattere la testa

  2. #2
    dipende dal modo in cui IE gestisce l'onchange.

    Usa l'evento onclick per i radio

  3. #3
    Mai avrei pensato a una simile differenza per la gestione di questi eventi VVoVe:

    Grazie mille raven, ora funziona tutto alla grande

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.