UPDATED yorumlarına yanıtta içinde
Her şeyden önce, javascript bariz nedenlerle, güvenli bir validator olamaz! Bu uyarılar ve haber görüntüleme süslü bir yol olabilir ama sadece şeker olabilir!
Gerçek doğrulama değerleri kontrol ve biçimlendirme ile PHP veya diğer sunucu tarafı dili yanı sıra veritabanı tarafında yapılmalıdır!
Bu basit bir script bir akıllı doğrulayıcı inşa nasıl sadece bir demostration, ama tabii kavramının sadece bir kanıtıdır!
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;
}
});
});
Ardından <form>
eylemine ilişkin, bunu php sayfanın yolu olması gerekmez, ancak OR sadece ({[terk POST yapmak için AJAX kullanmanız gerekir 2)]} yerin altındaki Postadölesan parçacıklarını görürsünüz:
// 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;