В js новичок, написал код, которий не работае(да знаю что руки из одного места), видает ошибку TypeError: pattern.test is not a function(…), как исправить не знаю, помогите пожалуйста.
Суть кода в проверки значения инпута при собитии keydown, то есть многовено
var input = document.getElementsByClassName('validate');
function validateMail(el, pattern) {
return pattern.test(el);
};
function check(el, pattern) {
el.onkeydown = function () {
if( el.value !== '' ) {
if(pattern) {
el.classList.remove('error');
el.classList.add('ok');
} else {
el.classList.remove('ok');
el.classList.add('error');
};
}
};
};
for (var i = 0; i < input.length; i++) {
check(input[i], validateMail(input[i], input[i].getAttribute('pattern')));
};
<form action="POST" class="form">
<input class="validate mail" type="email" placeholder="Ваш e-mail..." pattern="1">
<input class="validate name" type="text" placeholder="Ваше имя..." pattern="^\d{5,6}(?:[-\s]\d{4})?$">
<input class="validate pass" type="password" placeholder="Ваш пароль..." pattern="^\d{5,6}(?:[-\s]\d{4})?$">
<input class="validate phone" type="tel" placeholder="Ваш телефон..." pattern="^\d{5,6}(?:[-\s]\d{4})?$">
<span>Получить код</span>
<input class="key" type="text" placeholder="Ваш код подтверждения...">
<span>Подтвердить</span>
<input class="next_step" type="submit" value="Продолжить" disabled>
</form>