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.