Кто-нибудь знает, почему в моем скрипте не работает clearInterval(interval)? Я не получаю ошибок в журнале консоли. Понятия не имею, почему я не могу остановить интервал.
Спасибо за поддержку.
var interval;
$(document).on('click', '#register-continue', function() {
$('.modal-register-form :input[type=text], .modal-register-form :input[type=email], .modal-register-form :input[type=password]').each(function() {
if ($(this).val().length === 0) {
interval = setInterval(function() {
console.info('count')
$('.modal-register-form :input[type=text], .modal-register-form :input[type=email], .modal-register-form :input[type=password]').each(function() {
if (($(this).val().length != 0) && (!($(this).is(':focus')))) {
$(this).css({
border: '1px solid #e5e5e5'
});
}
if (($(this).val().length === 0) && (!($(this).is(':focus')))) {
$(this).css({
border: '1px solid #fe0000'
});
}
});
}, 10);
}
});
});
$(document).on('click', '#register-submit', function() {
clearInterval(interval);
});<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = "modal-register-form">
<div class = "user-input">
<input class = "first-name" type = "text" placeholder = "Vorname">
<input class = "last-name" type = "text" placeholder = "Nachname">
</div>
<button type = "button" id = "register-continue" class = "register">continue</button>
<button type = "button" id = "register-submit" class = "register">submit</button>
</div>Вместо проверки DOM каждые 10 мс на наличие новых событий использования ввода: Центр обучения jQuery -> События
Я согласен с Андреасом. Прикрепите класс required к элементам, требующим ввода. В сценарии найдите все элементы с классом .required и привяжите к ним обработчик событий change. Если у них нет значения, присвойте им границу ошибки, в противном случае удалите границу ошибки, если она существует.
Это отличная идея, но: она меняет цвет границы, пока поле ввода находится в фокусе. Он должен измениться, если в центре внимания находится не он. Как такое возможно? Любые идеи?

На самом деле ваша проблема, скорее всего, связана с тем, что у вас есть одна переменная
interval, в которой вы пытаетесь сохранить несколько интервалов (ваша логика находится в каждом). Таким образом, вы будете очищать только последний интервал. Вы теряете ссылки на созданные ранее интервалы.