Ваша логика ошибочна.Вы не должны опускать флаг (изменить на 0), если он уже поднят (равен 1).Кроме того, вам не следует снова напрямую вызывать submit()
, просто вернуть true или false.
Исправить с минимальными изменениями в исходном коде:
flag = 0; //lower by default
if (document.getElementById("user").value == "") {
// slidedown some red css
flag = 1;
} else {
// dont show red css
}
if (document.getElementById("email").value == "") {
// slidedown some red css
flag = 1;
} else {
// dont show red css
}
if (flag == 1) {
// dont submit form
return false;
}
else {
return true;
}
Это просто установит флаг на 0только один раз, сверху, и любая ошибка проверки приводит к поднятию флага.
Это будет работать, но, поскольку вы уже используете jQuery, рассмотрите возможность использования его мощности ... просто Google для "проверки формы jQuery" дляочень мощные и простые способы проверки ввода пользователя.