Я лично не совсем понял как у вас отрабатывает представленный пример. Есть два способа повесить хендлер на событие.
Первый, проприетарный :
jQuery('form').on('submit',function(e){
e.preventDefault(); //Отменили нативное действие
(e.cancelBubble) ? e.cancelBubble : e.stopPropagation; //Погасили всплытие
}
И второй, через алиас:
jQuery('form').submit(function(){
return false; //Отменили нативное действие
});
А у вас что-то среднее получилось.
Кроме того почему не сделать так:
jQuery('form').on('submit',function(e){
var flag = true,
inputs = jQuery('input:not([type="submit"])',this); // Вторым аргументом указываем где искать
inputs.each(function(){
if(jQuery(this).val() == ''){
flag = false;
}
});
if(flag){
/* Ajax запрос */
alert('Запрос!');
} else {
alert('Заполни меня!!!');
}
e.preventDefault(); //Отменили нативное действие
(e.cancelBubble) ? e.cancelBubble : e.stopPropagation; //Погасили всплытие
});
Рабочий пример