Ciao a tutti.
Ho questo form:
codice:
<HTML>
<HEAD>
<script language="JavaScript" type="text/JavaScript">
<!--
function disabilita(Qform)
{
var valore = Qform.AttC.options.selectedIndex;
if(valore!=1){
Qform.AttC.disabled = true;
}
else {
Qform.AttNC.disabled = false;
}
}
function convalidaForm(Qform)
{
for (var a = 0; a < Qform.elements.length; a++)
{
var campo = Qform.elements[a];
if (campo.value.length <= 0)
{
window.alert('Il campo "'+ campo.name +'"\nè un campo obbligatorio in questo form.');
campo.focus();
return false;
}
}
// Abilita l'invio del FORM
return(true);
}
//-->
</script>
</HEAD>
<body>
<form action="altrapag.asp" method="post" onsubmit="return(convalidaForm(this));">
<--!altri campi del form -->
Lista: <input type="checkbox" name="lista" value="Si">
Forfait: <input type="checkbox" name="forfait" value="Si">
<select size="1" name="AttC" OnChange="disabilita(this.form);"> ... </select>
<textarea name="AttNC" rows="5" cols="32">Nessuna</textarea>
</form>
</body>
</html>
nel quale:
1) La funzione disabilita fa in modo che se nella select AttC viene selezionato un valore si disabilita la textarea AttNC, mentre se non si seleziona nulla abilita la textarea AttNC alla compilazione;
2) La funzione convalidaForm controlla l'obbligatorietà di tutti i campi del form.
Problemi:
1) Dovrei rendere inizialmente obbligatori anche i checkbox Lista e Forfait e fare in modo che se si mette il flag in uno dei due checkbox l'altro venga disabilitato alla compilazione (dunque non più obbligatorio);
2) Quando viene abilitata alla compilazione textarea AttNC il valore iniziale "Nessuna" dà via libera al form, mentre in questo caso dovrebbe essere richeista la compilazione con testo diverso da "Nessuna".
Spero d'essermi spiegato, non è facile.
Confido nel vs. prezioso aiuto, saluti
Viki1967