Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217

    Problema visualizzazione campi testo da select

    Ragazzi devo far comparire dei campi testo a seguito del valore della select ma non funziona lo script qualcuno pratico mi può aiutare a capire quale sia l'errore.

    codice:
    <script language="javascript">
    
    
    function nascondi_inp_txt(){
    
    
    var index  = document.calendario.baby.selectedIndex;   
    baby  = document.calendario.baby.options[index].value;  
    window.calendario.baby.value=""+baby+"";
    
    
    if (baby=1){
    document.getElementById('inptext').style.visibility='visible';
    }
    
    
    else if (baby=2){
    document.getElementById('inptext').style.visibility='visible';
    document.getElementById('inptext1').style.visibility='visible';
    }
    
    
    else if (baby=3){
    document.getElementById('inptext').style.visibility='visible';
    document.getElementById('inptext1').style.visibility='visible';
    document.getElementById('inptext2').style.visibility='visible';
    }
    
    
    else
    
    
    {
    document.getElementById('inptext').style.visibility='hidden';
    document.getElementById('inptext1').style.visibility='hidden';
    document.getElementById('inptext2').style.visibility='hidden';
    }
    }
    </script>
    
    <form name = "calendario" method="POST"  action="preventivo.asp">
    <input type ="hidden" name="azione" value="crea">
    
    
    <table width=100%>
    <tr>
    <td>From:</td><td><input type="text" name="data_inizio"  id="from" ></td>
    <td>To:</td><td> <input type="text" name="data_fine"  id="to" ></td>
    <TD>Pax</td><td><input type="text" name="pax"></td>
    <td>Bambini</td><td><select name="baby" onChange="nascondi_inp_txt();" id="bam">
    <option value="0" <%IF baby="0" then%>selected<%end if%>>0</option>
    <option value="1" <%IF baby="1" then%>selected<%end if%>>1</option>
    <option value="2" <%IF baby="2" then%>selected<%end if%>>2</option>
    <option value="3" <%IF baby="3" then%>selected<%end if%>>3</option>
    </select>
    
    
    <input name="data_baby" type="text" id="inptext"  style="visibility:hidden;">
    <input name="data_baby1" type="text" id="inptext1"  style="visibility:hidden;">
    <input name="data_baby2" type="text" id="inptext2"  style="visibility:hidden;">
    </td>
    <td><input type="submit" value="Crea">
    </tr>
    </table>
    </form>
    Ultima modifica di fabiodj; 09-06-2015 a 18:24

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217

    Problema risolto

    Ecco la soluzione

    codice:
    <script language="javascript">
    
    
    function nascondi_inp_txt(){
    
    
    var index  = document.calendario.baby.selectedIndex;   
    baby  = document.calendario.baby.options[index].value;  
    
    
    
    
    
    
    if (baby==1){
    document.getElementById('inptext').style.visibility='visible';
    }
    
    
    else if (baby==2){
    document.getElementById('inptext').style.visibility='visible';
    document.getElementById('inptext1').style.visibility='visible';
    }
    
    
    else if (baby==3){
    document.getElementById('inptext').style.visibility='visible';
    document.getElementById('inptext1').style.visibility='visible';
    document.getElementById('inptext2').style.visibility='visible';
    }
    
    
    else
    
    
    {
    document.getElementById('inptext').style.visibility='hidden';
    document.getElementById('inptext1').style.visibility='hidden';
    document.getElementById('inptext2').style.visibility='hidden';
    }
    }
    </script>
    
    
    
    <form name = "calendario" method="POST"  action="preventivo.asp">
    <input type ="hidden" name="azione" value="crea">
    
    
    <table width=100%>
    <tr>
    <td>From:</td><td><input type="text" name="data_inizio"  id="from" ></td>
    <td>To:</td><td> <input type="text" name="data_fine"  id="to" ></td>
    <TD>Pax</td><td><input type="text" name="pax"></td>
    <td>Bambini</td><td><select name="baby" onChange="nascondi_inp_txt();" id="bam">
    <option value="0" <%IF baby="0" then%>selected<%end if%>>0</option>
    <option value="1" <%IF baby="1" then%>selected<%end if%>>1</option>
    <option value="2" <%IF baby="2" then%>selected<%end if%>>2</option>
    <option value="3" <%IF baby="3" then%>selected<%end if%>>3</option>
    </select>
    </td>
    <td>
    <span id="inptext"  style="visibility:hidden;">Baby 1 <input name="data_baby" type="text" ></span><br>
    <span  id="inptext1"  style="visibility:hidden;">Baby 2 <input name="data_baby1" type="text"></span><br>
    <span id="inptext2"  style="visibility:hidden;">Baby 3 <input name="data_baby2" type="text"></span><br>
    </td>
    <td><input type="submit" value="Crea">
    </tr>
    </table>
    </form>

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217

    Problema parzialmente risolto

    Ho risolto parzialmente il problema solo che adesso quando invio il modulo nonostante il campo select è selezionato sul valore giusto non compaiono i campi testo.

    codice:
    <%
    baby = TRIM(Request.Form("baby"))
    
    &>
    
    <script language="javascript">
    
    
    function nascondi_inp_txt(){
    
    
    var index  = document.calendario.baby.selectedIndex;   
    baby  = document.calendario.baby.options[index].value;  
    
    
    
    
    
    
    if (baby==1){
    document.getElementById('inptext').style.visibility='visible';
    }
    
    
    else if (baby==2){
    document.getElementById('inptext').style.visibility='visible';
    document.getElementById('inptext1').style.visibility='visible';
    }
    
    
    else if (baby==3){
    document.getElementById('inptext').style.visibility='visible';
    document.getElementById('inptext1').style.visibility='visible';
    document.getElementById('inptext2').style.visibility='visible';
    }
    
    
    else
    
    
    {
    document.getElementById('inptext').style.visibility='hidden';
    document.getElementById('inptext1').style.visibility='hidden';
    document.getElementById('inptext2').style.visibility='hidden';
    }
    }
    </script>
    
    
    
    <form name = "calendario" method="POST"  action="preventivo.asp">
    <input type ="hidden" name="azione" value="crea">
    
    
    <table width=100%>
    <tr>
    <td>From:</td><td><input type="text" name="data_inizio"  id="from" ></td>
    <td>To:</td><td> <input type="text" name="data_fine"  id="to" ></td>
    <TD>Pax</td><td><input type="text" name="pax"></td>
    <td>Bambini</td><td><select name="baby" onChange="nascondi_inp_txt();" id="bam">
    <option value="0" <%IF baby="0" then%>selected<%end if%>>0</option>
    <option value="1" <%IF baby="1" then%>selected<%end if%>>1</option>
    <option value="2" <%IF baby="2" then%>selected<%end if%>>2</option>
    <option value="3" <%IF baby="3" then%>selected<%end if%>>3</option>
    </select>
    </td>
    <td>
    <span id="inptext"  style="visibility:hidden;">Baby 1 <input name="data_baby" type="text" ></span><br>
    <span  id="inptext1"  style="visibility:hidden;">Baby 2 <input name="data_baby1" type="text"></span><br>
    <span id="inptext2"  style="visibility:hidden;">Baby 3 <input name="data_baby2" type="text"></span><br>
    </td>
    <td><input type="submit" value="Crea">
    </tr>
    </table>
    </form>

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Bravo. Suppongo sia un errore comune scrivere = anziché == per chi proviene dalla programmazione vb/asp.

    Ad ogni modo credo che la logica del tuo script sia comunque sbagliata: prova a selezionare "3" e, subito dopo, "1".
    Inoltre lo script potrebbe essere facilmente ottimizzato, sempre che sia tuo interesse farlo.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Sostituisci l'intera funzione con questa:
    codice:
    function nascondi_inp_txt(){   var index = document.calendario.baby.selectedIndex;   var inpArr = ['inptext','inptext1','inptext2'];   for (var id in inpArr) {     document.getElementById(inpArr[id]).style.visibility = id>=index ? 'hidden' : 'visible';   } }
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Grazie Killerworm

    In effetti programmando in ASP molti codici di javascript mi si impallano .... sto rispulciando la guida ma devo ancora fare molta pratica.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    kILLER
    Dato che sei stato cosi gentile ti chiedo un ulteriore aiuto. Sto creando il controllo relativo al campo data ma con l'evento onblur funziona solo al caricamento della pagina
    Guarda il link http://forum.html.it/forum/showthrea...readid=2926868

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.