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

    Cambi obbligatori in base al radio button scelto

    Ho bisogno di rendere obbligatori dei campi in base al radio button che l'utente sceglie.
    Mi spiego meglio:
    Mettero' un radiobutton su: Scegli un vecchio cliente
    ed un radiobutton su un form dove inserisco un nuovo cliente.
    Il problema e' che voglio capire come rendere obbligatori i campi ma solo in base al radiobutton scelto.
    Allego un'immagine
    Immagini allegate Immagini allegate

  2. #2
    Utente bannato
    Registrato dal
    Apr 2009
    Messaggi
    530
    A questo punto direi di far eseguire a JavaScript anche l' invio finale del FORM, con la funzione nativa submit() quindi, usando un pulstante type="button" anziché type="submit" questo perché, l' utente che disabilitasse JS sul Browser potrebbe dribblare il controllo (controllo lato-Client) dei campi e far partire il form comunque.

    Per partire con un primo esempio, facciamo conto di avere i due radio-button sì, con un solo campo di testo associato a ciascuno.
    Ora, l' istruzione if (document.nomeForm.nomeElementoDiForm.value == "") è quella che ci individua un determinato campo di testo e controlla se è stato lasciato vuoto (cioè avesse, value == "" ); se l' ipotesi risulta vera, allora si da' esecuzione a successive istruzioni contenute tra le graffe {} che seguono l' if ()
    Questi if-statement li dovremo però "incapsulare" in un if-statement superiore che controlla prima quale dei due radio è stato selezionato; e considera anche un terzo caso in cui l' utente omettesse il tutto.
    codice:
    <script>
    
     function invia(){
    
         if (document.ilForm.quale[0].checked){ //se il * primo * radio risulta selezionato 
    
             if (document.ilForm.vecchio.value == ""){
                 alert("campo obbligatorio");
                 return;
         } else {
                 document.ilForm.submit();
         };
    
     } else { //altrimenti, 
         if (document.ilForm.quale[1].checked){ //se il *secondo* radio risulta selezionato 
    
             if (document.ilForm.nuovo.value == ""){
                 alert("campo obbligatorio");
                 return;
         } else {
                 document.ilForm.submit();
         };
    
     } else { //altrimenti, 
                 alert("seleziona opzione"); //significa che ne' il * primo * ne' il *secondo* 
                                             //sono stati selezionati 
     };
     };
     }
    </script>
    <body bgcolor="silver">
    
    <form name="ilForm" action="tuaDestinazione.php" method="">
     <input name="quale" type="radio">Usa un cliente già esistente
    <input 
      name="vecchio" type="text">
    
     
    
     <input name="quale" type="radio">Crea un nuovo cliente
    <input 
      name="nuovo" type="text">
    
     
    
     <input name="" value=" OK " type="button" onclick="invia();">
    </form></body>
    Quel paio di return; potresti anche toglierli, servono a "scorciare" il processo, cioè dicono alla funzione che basta fermarsi qui, non c'è altro da fare e non c'è bisogno di "processare" le altre righe sino all' ultima graffa che chiude la function.

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    perfetto, funziona alla grande, grazie 100000

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