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.