Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    Visualizzare 2 campi di testo solo se e' spuntato un checkbox

    Ciao a tutti
    qualcuno saprebbe dirmi come posso fare in modo che:
    spuntanto un checkbox appaia nella pagina qualhce altro campo di testo?

    Mi serve per fare un modulo che inserisca i dati di alcuni servizi tipo un viaggio in treno.

    Se e' solo andata devono uscire i soli campi di testo per l'andata
    Se e' andata e ritorno devono uscire anche i campi per il ritorno

    Questo pero' vorrei che uscisse direttamente nella pagina in tempo reale.

    Avete esempi?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    A grandi linee, i due campi li imposti con visibility:none di default e nella checkbox "andata" al onclick="this.checked ? document.getElementById('id-campo-andata').style.visibility='visible' : document.getElementById('id-campo-andata').style.visibility='none' " idem per il checkbox "andata/ritorno" ma dovranno esserci document.getElementById('id-campo-andata').style.visibility='visible'; document.getElementById('id-campo-ritorno').style.visibility='visible' (cioè i due campi separati dal ma visto che si deva fare una scelta meglio se usi i campi radio al posto dei checkbox
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Puoi farlo in due modi. O in puro CSS:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <style type="text/css">
    .nascosto {
    	display: none;
    }
    
    #chBxEstendi:checked ~ span.nascosto {
    	display: inline;
    }
    
    #chBxEstendi:checked ~ br.nascosto {
    	display: block;
    }
    </style>
    </head>
    
    <body>
    <form name="tuoForm">
    
    
    <input type="checkbox" name="tuaCheckbox" id="chBxEstendi" /> <label for="chBxEstendi">mostra altri due campi</label>
    
    <span class="nascosto">Altro campo #1: <input type="text" name="tuaTxtBox1" /></span><br class="nascosto" />
    <span class="nascosto">Altro campo #2: <input type="text" name="tuaTxtBox1" /></span><br class="nascosto" />
    <input type="submit" value="Invia" />
    </form>
    </body>
    
    </html>
    O in puro JavaScript:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function nascondiMostra (bShow) {
    	Array.prototype.forEach.call(document.querySelectorAll(".nascosto"), function (oElement) {
    		oElement.style[bShow ? "removeProperty" : "setProperty"]("display", "none");
    	});
    }
    
    window.onload = function () {
    	nascondiMostra(document.tuoForm.tuaCheckbox.checked);
    };
    </script>
    </head>
    
    <body>
    <form name="tuoForm">
    
    
    <input type="checkbox" name="tuaCheckbox" id="chBxEstendi" onchange="nascondiMostra(this.checked);" /> <label for="chBxEstendi">mostra altri due campi</label>
    
    <span class="nascosto">Altro campo #1: <input type="text" name="tuaTxtBox1" /></span><br class="nascosto" />
    <span class="nascosto">Altro campo #2: <input type="text" name="tuaTxtBox1" /></span><br class="nascosto" />
    <input type="submit" value="Invia" />
    </form>
    </body>
    
    </html>
    In puro CSS lo puoi fare solamente se gli elementi da mostrare vengono DOPO la checkbox e se sono nodi "fratelli". Se queste condizioni sono soddisfatte è la soluzione che personalmente preferisco.

    P.S. Esiste un "trucchetto" per ovviare a questo inconveniente della "successione". Basta mettere la checkbox in cima alla pagina e renderla "nascosta". Al suo posto è possibile usare una label, che a quel punto potresti piazzare dove ti pare. Qui hai un esempio che avevo scritto un po' di tempo fa e che ti farà capire meglio di ogni spiegazione: https://developer.mozilla.org/@api/d...-elements.html

  4. #4
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    grazie ad entrambi
    carlomarx, era proprio quello che cercavo.
    Grazieee

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 © 2026 vBulletin Solutions, Inc. All rights reserved.