Piuttosto che inserire il codice all'interno del tag input html, ti suggerisco di utilizzare una funzione javascript separata. Ne guadagni in leggibilità, riuso e manutenibilità.

onchange può essere usato per gli input text ma si applica al termine del cambiamento. Vedi esempio:
http://www.w3schools.com/jsref/tryit...sref_onchange2

Cosa intendi per "varia da solo"? Se definisci la funzione esterna puoi invocare tu la funzione in caso di modifica automatica.