Поскольку ваш return true;
будет выполняться для любого непустого поля, таким образом, код не будет проверять все поля. Кроме того, вы только возвращаете из внутренней функции, а не обработчик отправки. Вы должны переписать что-то вроде этого:
$("form").submit(function() {
isValid = true;
$(".required").each(function() { //check each instance with class of 'required'.
if ($(this).val() == "") { //if field left blank,
isValid = false;
}
});
return isValid; //all is ok, proceed.
});