Вы возвращаетесь из функции обратного вызова .each()
, return false
прерывает ее, но не возвращает из внешней функции (вашего обработчика submit
), вместо этого вы должны сделать что-токак это:
$('#theform').submit(function(){
var result = true;
$('#theform input[type=text]').each(function(n,element){
if ($(element).val()=='') {
alert('The ' + element.id + ' must have a value');
return result = false;
}
});
return result;
});
В этом он находит первый пустой элемент, устанавливает result
в false
и возвращает в одном выражении, затем возвращает result
из внешней функции ... еслипустых полей не было, это все равно будет true
.