Здравствуйте!
Пишу форму регистрации нового пользователя. С JavaScript и JQuery знаком считанные часы.
Вылезла проблема, которую никак не могу решить:
в JS есть флаг VALID, который при успешном прохождении всех фильтров активирует кнопку "Зарегистрироваться".
В кусочке JQuery, где я сравниваю логин введенный с тем, что есть в базе, этот самый VALID я не могу вытащить.
// проверка логина на длину, латинские символы и цифры, первая буква
function validateForm() {
var VALID = true;
var login = document.getElementById("login").value.toLowerCase();;
var errLogin = "";
if(login.length < 4 || login.length > 20) {
errLogin += "В логине должно быть от 4 до 20 символов<br>";
VALID = false;
}
if(/^[a-zA-Z1-9]+$/.test(login) === false) {
errLogin += "В логине должны быть только латинские буквы и цифры<br>";
VALID = false;
}
if(parseInt(login.substr(0, 1))) {
errLogin += "Логин должен начинаться с буквы<br>";
VALID = false;
}
// проверка совподения логина в базе
if (login.length > 0) {
if (errLogin.length < 1) {
$.get("ajax.php?funk=users&login=" + login, function (data) {
data = jQuery.parseJSON(data);
var bdLogin = data[0].login;
if (login.localeCompare(bdLogin) == 0) {
VALID = false;
errLogin = "Пользователь с таким логином уже зарегистрирован";
}
$('#errLogin').html(errLogin);
});
}
document.getElementById('errLogin').innerHTML = errLogin;
}
// проверка почты регулярным выражением
var mail = document.getElementById("mail").value;
var errMail = "";
var re = /^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,6}$/i;
if(!re.test(mail)){
errMail += "Не корректно введен e-mail";
VALID = false;
}
if (mail.length > 0) {
document.getElementById('errMail').innerHTML = errMail;
}
// проверка имени
var name = document.getElementById("name").value;
var errName = "";
re = /^[a-zA-Zа-яА-Я'][a-zA-Zа-яА-Я-' ]+[a-zA-Zа-яА-Я']?$/u;
if(!re.test(name)){
errName += "Не корректно введено Имя";
VALID = false;
}
if (name.length > 0){
document.getElementById('errName').innerHTML = errName;
}
// проверка пароля
var password = document.getElementById("password").value;
var errPassword = "";
re = /^[\d\w]{3,10}$/;
if(!re.test(password)){
errPassword = "Пароль должен быть от 3 до 10 символов и содержать только латинские символы и цифры";
VALID = false;
}
if (password.length > 0) {
document.getElementById('errPassword').innerHTML = errPassword;
}
// сравниваем пароли
var passwordR = document.getElementById("passwordR").value;
var errPasswordR = "";
if (password !== passwordR) {
errPasswordR = "Пароли не совпадают";
VALID = false;
}
document.getElementById('errPasswordR').innerHTML = errPasswordR;
// потом удалить
document.getElementById('errorCounter').innerHTML = VALID;
if (VALID == true) {
$('#submit').prop('disabled', false);
} else {
$('#submit').prop('disabled', true);
}
}