Показать сообщение отдельно
  #1 (permalink)  
Старый 17.09.2014, 02:26
Новичок на форуме
Отправить личное сообщение для daneyeah Посмотреть профиль Найти все сообщения от daneyeah
 
Регистрация: 17.09.2014
Сообщений: 2

Проверка полей input
К делу собственно, что сделать чтобы это "чудо" заработало.
Есть такая вот форма:
<form method="post" action="/components/act/reg.php" class="reg">
    <fieldset class="usr-inp">
        <input type="text" name="login" id="reg-username" placeholder="Login..." class="neutral" onblur="" required  />
        <input type="email" name="email" id="reg-email" placeholder="E-mail..." class="neutral" onblur="" required />
        <input type="password" name="password" id="reg-pass" placeholder="Password..." class="neutral" onblur="" required />
        <input type="password" name="password" id="reg-check-pass" placeholder="Check password..." class="neutral" onblur="" required />
    </fieldset>
    <fieldset class="tips">

    </fieldset>
    <fieldset class="submiting">
        <div class="rules-agree">
            <input type="checkbox" id="agree" />
            <label for="agree"></label>
            <p>Я согласен с <a href="#rules">правилами</a></p>
        </div>
        <button type="submit" disabled>
            <i class="icon-exit"></i>
        </button>
    </fieldset>
</form>

И такой вот скрипт, собственно первые функции в отдельном файле (все работают), а сам скрипт начинается с объявления переменных, проблема в том что по onblur ничего не происходит.
function filterUserName(val) {
    var re = /^[\wа-яёЁА-Я]+([._ -]?[\wа-яёЁА-Я]+)*$/;
    return re.test(val);
}

function filterEmail(val) {
    var re = /^([^\s\'\"]+)\@([^\s\'\"]+)$/;
    return re.test(val);
}

function filterPassword(val) {
    var re = /^[\w\d\!\@\#\$\%\^\&\*\(\)\_\+\=\№\%\*\?\<\>\~\{\}\[\]\|\-]*$/;
    return re.test(val);
}

function hasClass(el, cls) {
    return el.classList.contains(cls);
}

function addClass(el, cls) {
    if (!hasClass(el, cls)) el.className += (el.className ? ' ' : '') + cls;
}

function removeClass(el, cls) {
    var newArray = el.className ? el.className.split(" ") : [];
    var result = [];
    for (var i = 0; i < newArray.length; i++) {
        if (newArray[i] != cls) {
            result.push(newArray[i]);
        } else {
            continue;
        }
    }
    el.className = result.join(" ");
    return el.className;
}
var username = document.getElementById("reg-username");
var email = document.getElementById("reg-email");
var password = document.getElementById("reg-pass");
var checkPassword = document.getElementById("reg-check-pass");
var checkBox = document.getElementById("agree");
var button = document.getElementById("submit");

username.onblur = function () {
    if (filterUserName(this.value)) {
        removeClass(this, 'neutral');
        addClass(this, 'correct');
    } else {
        removeClass(this, 'neutral');
        addClass(this, 'in-correct');
    }
};
email.onblur = function() {
    if (filterEmail(this.value)) {
        removeClass(this, 'neutral');
        addClass(this, 'correct');
    } else {
        removeClass(this, 'neutral');
        addClass(this, 'in-correct');
    }
};
password.onblur = function() {
    if (filterPassword(this.value)) {
        removeClass(this, 'neutral');
        addClass(this, 'correct');
    } else {
        removeClass(this, 'neutral');56
        addClass(this, 'in-correct');
    }
};
checkPassword.onblur = function() {
    if (this.value == password.value) {
        removeClass(this, 'neutral');
        addClass(this, 'correct');
    } else {
      removeClass(this, 'neutral');
      addClass(this, 'in-correct');
    }
};

Хотелось бы совет или прямую наводку, ибо в намеках не силен, можно если что ссылку на статьи или что-то подобное по этому поводу, буду рад помощи вообщем-то.

можно если что на jsfiddle посмотреть или ссылочкой подогреть на исправленное: http://jsfiddle.net/daniilbagaev/sr4775no/1/

Последний раз редактировалось daneyeah, 17.09.2014 в 02:35.
Ответить с цитированием