Forse hai ragione... posto la pagina:

<form action="add.php?cerca=&idcampo=&idpren=&idcliente= &ordinamento=dt_data" method="post" enablecab="No" enctype="multipart/form-data" onSubmit="return validateForm();">
<table width="100%" cellpadding="0" cellspacing="0">
<tr align="center" bgcolor="fbb666">
<td colspan="2">Inserimento nuova prenotazione</td>

<tr>
<td>Cliente</td>
<td><select name="idclientesel">
<option value="1" >Comedini Luca</option>
<option value="5" >Uva Anna Elisa</option>
</select> </td>
</tr>
<tr>
<td>Campo</td>
<td> <select name="idcamposel" onChange="submit();">
<option value="1" >campo da calcetto - campo esterno da calcetto</option>
</select>
</td>
</tr>
<tr>
<td height="2">Data prenotazione</td>
<td height="2"> <input type="text" readonly="yes" name="data" id="data" onChange="submit();" value="">[img]../calendario/img.gif[/img]
<script type="text/javascript">
Calendar.setup({
inputField : "data", // id of the input field
ifFormat : "%d/%m/%Y", // format of the input field
showsTime : false, // will display a time selector
button : "bottone", // trigger for the calendar (button ID)
singleClick : false, // double-click mode
step : 1 // show all years in drop-down boxes (instead of every other year as default)
});
</script>
</td>
</tr>
<tr>
<td height="2">Orario di inzio</td>
<td height="2">
<select name="id_orainizio" onChange="submit()">
<option value="">- Orario -</option>
</select>
</td>
</tr>
<tr>
<td height="2">Orario di fine</td>
<td height="2">
<select name="id_orafine">
<option value="">- Orario -</option>
</select>
</td>
</tr>
<tr>
<td height="2">Confermato</td>
<td height="2"> <select name="bl_confermato" id="bl_confermato">
<option value="1">S&igrave;</option>
<option value="0" selected>No</option>
</select> </td>
</tr>
<tr>
<td>note</td>
<td> <textarea name="ac_note" cols=50 rows=5 id="ac_descrizione"></textarea>
</td>
</tr>
<tr bgcolor="fbb666">
<td colspan="2"></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td colspan="2"> <input type="submit" name="invia" value="Aggiungi" class="button">
<input type="button" value="Ritorna al men&ugrave" onClick="location.href='index.php?cerca=&idcampo=& idpren=&idcliente=&ordinamento=dt_data'" class="button">
</td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
</table>
</form>
<script language="JavaScript">
function validateForm(){
errore='ATTENZIONE!! i seguenti campi non sono stati compilati:\n';
if(isNull('data')) {errore+='. scegliere la data'; ok=false};
if(isRangeSel('id_orainizio','id_orafine')) {errore+='. l\'orario della prenotazione'; ok=false};
ok=true;
if (! ok) alert (errore);
return ok;
}
</script>

come puoi vedere dal codice ci sono tre campi (idcampon, data e id_orainizio) che eseguono il submit all'onChange.

Quando eseguono il submit, giustamente js fa il controllo dei campi obbligatori.

Io non voglio che quando esegue onchange faccia il controllo, ma solo quando clicco sul bottone invia.

Spero che ora si capisca di più.

Grazie mille
Anna