In teoria l'evento onchange viene generato nel momento in cui il valore contenuto nel value viene modificato, che sia da js o da input fatto dall'utente.
fai attenzione che devi fare :
<input type="hidden" onChange="javascript:this.form.submit()" />
Ma sincremante nn capisco perche' vuoi fare una cosa del genere.
Cioe' a sto punto non ti conviene fare tutto con ajax ??
1) L'utente arriva alla pagina con la form
2) L'utente inserisce i dati
3) Quando cambia un parametro fondamentale blocchi la form, invii i dati con ajax e attendi il risultato dell'operazione
4) A terminazione visualizzi il messaggio di esecuzione terminata con successo/errore
5) Rilasci la form per ulteriori modifiche ai valori.
cosi' non gestire submit nascoste che potrebbero disorientare l'utente.
Inoltre non devi gestire cambi pagina e passaggio di parametri che richiedono necessariamente il ripopolamento della form.
puoi fare una cosa del tipo
<form name="myform" action="" method="post" onsubmit="miafunzionejs(this);return false" >
... dati
</form>
Cosi' a generarsi dell'evento "submit" vai a gestire tutto nella funzione specificata passando il riferimento del form.
Pensaci.