Was willst du da submitten? Das Formular, in das der Anwender gerade eintippt? Das ist kontraproduktiv. Aber <input onchange=...> gibt es schon ewig und im Hintergrund Requests absetzen geht mit Ajax.
Das Problem ist, dass während der Eingabe der Wert umgewandelt werden soll.
Du suchst wahrscheinlich sowas:
function enableInputChangeAfterKeyup(element) {
function trigger() {
var event;
this.timeout = false;
if (this.element.value !== this.value) {
event = document.createEvent('HTMLEvents');
event.initEvent('change', false, true);
this.element.dispatchEvent(event);
this.value = this.element.value;
}
}
function keyup() {
this.timeout && window.clearTimeout(this.timeout);
this.timeout = window.setTimeout(trigger.bind(this), this.delay);
};
if (typeof element === 'string') {
element = document.getElementById(element);
}
element.addEventListener('keyup', keyup.bind({
element : element,
value : element.value,
delay : Math.max(100, Math.min(750, enableInputChangeAfterKeyup.delay)),
timeout : false
}), false);
}
// Verzögerung in Millisekunden bevor der change Event getriggert wird
enableInputChangeAfterKeyup.delay = 250;
// Beispiel: Verhalten für input[text] element mit id "search" aktivieren
enableInputChangeAfterKeyup('search');