Я предлагаю использовать один обработчик событий в самой форме и проверить все необходимые поля. Чтобы сделать его немного более абстрактным, было бы неплохо, если бы вы могли пометить свои входные данные каким-либо атрибутом. Пример решения следующий:
$('#formNode').keyup(function(e){
var invalid = false;
$(this).children().each(function(i,child){
if(($(child).attr("isReq") == "true")
&& child.value.length == 0
){
invalid = true;
}
});
$("#submitButton")[invalid ? "hide" : "show"]();
});
<form id="formNode">
<input type="text" isReq="true"/>
<input type="text" isReq="true"/>
<input type="text" isReq="true"/>
<input type="submit" value="Submit" style="display:none" id="submitButton"/>
</form>
Как видите, каждый раз, когда вы хотите проверить узел, вы просто должны пометить его атрибутом isReq, и скрипт выполнит вашу работу за вас.