К делу собственно, что сделать чтобы это "чудо" заработало.
Есть такая вот форма:
<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/