Originariamente inviato da scm78
Ciao,
ho una form dove, a seconda della scelta in un radiogroup, si dovrebbero disattivare dei campi che però non sono solo dei campi di testo, ma anche dei dei radiogroup.
Come posso fare?
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Prova form</title>

<script language="javascript" type="text/javascript">

function toggleForm(radio) {
	allFieldset = radio.form.getElementsByTagName('fieldset');
	
	for (var i = 0; i < allFieldset.length; i++) {
		if (i != radio.value) {
			allTags = allFieldset[i].getElementsByTagName("*");
			for (var j=0; j < allTags.length; j++) {
				if (allTags[j].name != radio.name) {
					allTags[j].disabled = true;
				}
			}
		}
		else {
			allTags = allFieldset[i].getElementsByTagName("*");
			for (var j=0; j < allTags.length; j++) {
				allTags[j].disabled = false;
			}
		}
	}
			
}

</script>

</head>

<body>
<form name="mioform" action="miaaction.php" method="post">
  <fieldset id="fieldset_1">
    <legend><input type="radio" name="radio" value="0" onclick="toggleForm(this);" checked />
    Prima parte del form</legend>
    Nome: <input type="text" name="nome" />

    Cognome: <input type="text" name="cognome" />
  </fieldset>
  <fieldset id="fieldset_2">
    <legend><input type="radio" name="radio" value="1" onclick="toggleForm(this);" />Seconda parte del form</legend>
    Provincia: <select name="citta">
     		     <option value="0"></option>
                 <option value="1">Venezia</option>
                 <option value="2">Padova</option>
                 <option value="3">Vicenza</option>
                 <option value="4">Verona</option>
                 <option value="5">Treviso</option>
                 <option value="6">Rovigo</option>
                 <option value="7">Belluno</option>
               </select>
    Colore: <select name="colore">
    		  <option value="null"></option>
              <option value="giallo">Giallo</option>
              <option value="verde">Verde</option>
              <option value="rosso">Rosso</option>
            </select>
  </fieldset>
  <fieldset id="fieldset_3">
    <legend><input type="radio" name="radio" value="2" onclick="toggleForm(this);" />Terza parte del form</legend>
    Bottone 1: <input type="button" name="bottone_1" value="Bottone 1" />

    Checkboxes: <input type="checkbox" name="check[]" value="1" />Uno   <input type="checkbox" name="check[]" value="1" />Due   <input type="checkbox" name="check[]" value="1" />Tre   <input type="checkbox" name="check[]" value="1" />Quattro   
    </fieldset>
</form>

</body>
</html>
Da sistemare secondo le tue esigenze
inoltre dovrei rende disattivi non solo i campi ma anche le relative label.
Questo non è possibile i label non hanno l'attributo attivati/disattivi potresti operare sullo stile, ma l'operazione si complica ne vale la pena? Se la risposta è si, la strada e quella di modificare lo stile delle label.
In più mi chiedevo se era possibile fare in modo che questi campi disattivi non scomparissero ma risultassero non editabili e magari di colore diverso dalla form.
Questo in parte già lo fanno quando si disabilitano diventano di colore grigio-chiaro e non sono editabili/selezionabili.
Grazie per l'aiuto