Отправлять форму "на лету" - не лучшая идея.
Осуществить отправку можно по 2 событиям - изменение содержимого инпута (change) и клик клавишей (keyup).
Чтобы сильно не насиловать сервак, на стороне клиента можно делать проверку на валидность данных. И только если данные валидны, отправлять. Валидность осуществлять при том же событии.
Но вот вопрос - а точно ли пользователь хотел отправить именно эти данные на сервер (риторический)?