ОБНОВЛЕНО в ответ на комментарии
Прежде всего, javascript не может быть безопасным валидатором по понятным причинам! это может быть причудливый способ отображения предупреждений и уведомлений, но это просто сахар!
Реальная проверка должна выполняться на PHP или другом серверном языке, а также на стороне базы данных путем проверки и форматирования значений!
Этот простой скрипт - всего лишь демонстрация того, как вы можете создать умный валидатор, но, конечно, это просто подтверждение концепции!
DEMO: http://jsbin.com/aceze/29
$(function() {
$('#myform').submit(function() {
var error = false; // flag
$('.email,.digits,.empty,.some').each(function() {
var check = this.className;
if (check == 'empty') if (!checkEmpty(this.value)) error = true;
if (check == 'digits') if (!checkDigits(this.value)) error = true;
if (check == 'email') if (!checkEmail(this.value)) error = true;
if (check == 'some') if (!checkSome(this.value)) error = true;
if (error) {
$(this).css('border', '1px solid red');
} else {
$(this).css('border', '1px solid green');
}
});
if (error) {
return false;
}
});
});
Затем, что касается действия <form>
, вам не нужно указывать путь к странице php, но вы должны использовать AJAX, чтобы сделать POST ИЛИ , просто оставив review.php
где см. эти фрагменты ниже:
// FIRST SNIPPET action="#"
if ( error == false ) {
//if all is ok give our form it's php
$(this).attr('action','review.php');
} else {
// error
// place false here so the form don't submit if validation fail!
return false;
}
// SECOND SNIPPET action="review.php"
if ( error == true ) {
// form submit only if validation pass
return false;
}
// THIRD SNIPPET action="#" AJAX
if ( error == false ) {
// success
} else {
// error
}
// this false prevent the form submit in anycase, cause we use AJAX
return false;