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.