Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    4

    Inserire gruppo di campi input in un form tramite pulsante radio

    salve a tutti
    ho un form semplice con campi "nome e cognome" e "email", a cui, tramite la selezione del pulsante radio corrispondente a "richiesta di disponibilità" devono apparire in blocco le altre voci che ho racchiuso in <!-- Campi da aggiungere dinamicamente -->. l'utilizzo del pulsante radio può essere sostituito anche da altro anche da due bottoni l'importante è avere la possiilità di scegliere. il sito è in html5, ho cercato sul forum e penso che la cosa più simile alle mie esigenze sia:
    http://forum.html.it/forum/showthrea...hreadid=848168
    ma non riesco ad adattarlo, sono proprio in difficoltà! potreste inidicarmi una soluzione di facile adattamento al mio form? grazie!

    codice:
    <input name="Richiesta Info" type="radio" value="Richiesta informazioni" checked="checked" /> Richiesta informazioni<br />
    <input name="Richiesta disponibilita" type="radio" value="Richiesta disponibilita" /> Richiesta disponibilità
    
                                  <form action="#" method="post">
                                    <input type=hidden name="recipient" value="#">
                                        <div>
                                            <div class="row half">
                                                <div class="6u">
                                                    <input type="text" class="text" name="Nome e Cognome" placeholder="Nome e Cognome" required />
                                                </div>
                                                <div class="6u">
                                                    <input type="text" class="text" name="email" placeholder="email" required />
                                                </div>
                                            </div>
    
    <!-- Campi da aggiungere dinamicamente -->   
    
                                         
    <div class="row half">
                                                <div class="6u">
                                                    <input type="text" class="text" name="Telefono" placeholder="Telefono" required />
                                                </div>
                                                <div class="6u">                                              
                                                  <select name="Numero Persone" class="text" >
       <option value="Numero Persone" selected="selected">Seleziona Numero Persone</option>
       <option value="2">1</option>
       <option value="3">2</option>
       <option value="3">3</option>
       <option value="3">4</option>
       <option value="3">5</option>
      </select>
                                              </div>
                                          </div></div>
                                            <div class="row half">
                                                <div class="6u">
                                                  <input name="Data di arrivo" type="text" class="text" id="pickDateIn" value="Scegli la data di arrivo*" required >
                                                  Apri calendario <img src="images/calendar_icon.png" alt="Apri calendario" onClick="calendar.doo.display( document.getElementById('pickDateIn') )" />
                                                </div>
                                                <div class="6u">
                                                  <input name="Data di partenza" type="text" class="text" id="pickDateOut" value="Scegli la data di partenza**" required >
                                              Apri calendario <img src="images/calendar_icon.png" alt="Apri calendario" onClick="calendar.doo.display( document.getElementById('pickDateOut') )" />
                                                </div>
                                            </div>
    <!-- Fine campi da aggiungere dinamicamente -->                                      
                                            <div class="row half">
                                                <div class="12u">
                                                    <textarea name="Messaggio" rows="4" placeholder="Messaggio"></textarea>
                                              </div>
                                            </div>
     
                                            <div class="row">
                                                <div class="12u">
                                                    <input type="submit" class="button" value="Invia Messaggio" /> 
                                              </div>
                                            </div>
                                        </div>
                                    </form>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto
    I campi d'aggiungere dinamicamente sono fissi? Cioè sempre quelli?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    4
    si si, sempre quelli. se il due campi per aggiungere la data di arrivo e partenza creano problemi posso sempre renderli dei semplici campi di input.

    per spiegarmi ancora meglio il form è così:

    il form base è composto da: "nome e cognome", "email", "campo messaggio" che fa riferimento al pulsante "Richiesta Informazioni", ed è lo stato di default del form. premendo poi su "Richiesta disponibilità" si aggiungono i campi "telefono" "numero persone" e quelli del calendario che vorrei farli uscire subito dopo il campo "email". se la cosa si fa complessa mi andrebbe bene cercare anche una soluzione che a seconda del pulsante che si preme carica direttamente solo tutto il form "base" oppure uno ex novo con più campi!
    grazie ancora per l'interessamento!

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Allora racchiudi i campi in un div con display none e al click sul radio lo rendi visibile
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    4
    ho nascosto i campi con questo div

    <div style="display:none" id="mostraaltro">

    per il pulsante radio non so quale sintassi usare ho aggiunto onClick="" ma non so se è esatto e cosa metterci

    <input name="Richiesta disponibilita" type="radio" value="Richiesta disponibilita" onClick="" />

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    onClick="document.getElementById('mostra altro').style.display='block'" scusa ma una guida la potresti anche aprire
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao. E' valido quanto postato da Andrea per la soluzione javascript, come d'altronde hai richiesto. A mio parere si potrebbe però adoperare una soluzione con solo CSS senza scomodare javascript. In particolare con l'uso della pseudo-classe :cheched e del selettore sibling.

    Ad ogni modo, nel tuo codice html, noto qualche errore che andrebbe corretto. Ad esempio, l'attributo "name" deve avere uguale valore per tutti i bottoni radio di uno stesso gruppo, così che si abbia un corretto funzionamento.
    Alcuni div poi mi sembrano chiusi male.

    Se può essere d'interesse, posto un esempio per la soluzione CSS sul tuo codice html (che ho cercato di adattare al meglio):
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="ISO-8859-1">
        <style type="text/css">
          #campiDispo{display:none}
          #radioDispo:checked ~ * #campiDispo{display:block}
        </style>
      </head>
      <body>
        <input id="radioInfo" name="moduloRichiesta" type="radio" value="Richiesta informazioni" checked="checked" /><label for="radioInfo">Richiesta informazioni</label>
        <br /><input id="radioDispo" name="moduloRichiesta" type="radio" value="Richiesta disponibilita" /><label for="radioDispo">Richiesta disponibilità</label>
    
        <form id="moduloRichiesta" action="#" method="post">
          <input type="hidden" name="recipient" value="#" />
          <div>
            <div class="row half">
              <div class="6u">
                <input type="text" class="text" name="Nome e Cognome" placeholder="Nome e Cognome" required />
              </div>
              <div class="6u">
                <input type="text" class="text" name="email" placeholder="email" required />
              </div>
            </div>
    
            <!-- Campi da aggiungere dinamicamente -->   
            <div id="campiDispo">
              <div class="row half">
                <div class="6u">
                  <input type="text" class="text" name="Telefono" placeholder="Telefono" required />
                </div>
                <div class="6u">                                              
                  <select name="Numero Persone" class="text" >
                    <option value="Numero Persone" selected="selected">Seleziona Numero Persone</option>
                    <option value="2">1</option>
                    <option value="3">2</option>
                    <option value="3">3</option>
                    <option value="3">4</option>
                    <option value="3">5</option>
                  </select>
                </div>  
              </div>
              <div class="row half">
                <div class="6u">
                  <input name="Data di arrivo" type="text" class="text" id="pickDateIn" value="Scegli la data di arrivo*" required />
                  Apri calendario <img src="images/calendar_icon.png" alt="Apri calendario" onClick="calendar.doo.display( document.getElementById('pickDateIn') )" />
                </div>
                <div class="6u">
                  <input name="Data di partenza" type="text" class="text" id="pickDateOut" value="Scegli la data di partenza**" required />
                  Apri calendario <img src="images/calendar_icon.png" alt="Apri calendario" onClick="calendar.doo.display( document.getElementById('pickDateOut') )" />
                </div>
              </div>
            </div>
            <!-- Fine campi da aggiungere dinamicamente -->
            
            <div class="row half">
              <div class="12u">
                <textarea name="Messaggio" rows="4" placeholder="Messaggio"></textarea>
              </div>
            </div>
            <div class="row">
              <div class="12u">
                <input type="submit" class="button" value="Invia Messaggio" /> 
              </div>
            </div>
          </div>
        </form>
      </body>
    </html>
    Ovviamente si tratta di CSS3, per cui non è garantita la compatibilità con vecchi browser.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    4
    @cavicchiandrea quando mi hai detto "Allora racchiudi i campi in un div con display none e al click sul radio lo rendi visibile" sono stato tutto il pomeriggio a leggere la guida javascript base e per esperti presente sul sito, anche carcando su google trovavo solo script che su onclick non potevano andare, credimi ci ho messo tutta la buona volontà XD e ho cercato aiuto perchè avevo il cervello che fumava. poi dopo cena mi sono messo a fare l'ennesima ricerca sul forum questa volta cercando a mente lucida meglio con "onclick display" e finalmente avevo trovato
    document.getElementById("divavviso").style.display ='none'
    mi hai fregato sul tempo postando la soluzione perchè stavo per chiederti al posto di 'none' cosa dovevo mettere XD
    grazie ancora, per la pazienza soprattutto!

    @KillerWorm si è pieno di errori perchè ho una pagina html dove stavo facendo mille prove e form di diversi tipi con aggiunta e rimozione di elementi e molta robba è rimasta quindi è pieno di div e i bottoni con attributi sballati! grazie per l'esempio che mi hai fatto mi sarà utilissimo!

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.