У меня есть следующий код
let inputCollection = document.querySelectorAll('input[type="email"], input[type="text"], input[type="number"]');
let myForm = document.querySelector('.myForm');
let result = document.querySelector('.result');
function isEmpty(el){
return el.value.length === 0;
}
myForm.onsubmit = function(){
let res = [];
let resultText = '';
for (let i = 0; i < inputCollection.length; i++) {
if (!isEmpty(inputCollection[i])) {
res.push(inputCollection[i]);
}else{
inputCollection[i].classList.remove('succes');
inputCollection[i].classList.add('error');
resultText += 'Missing datat for input ' + inputCollection[i].getAttribute('type') + '<br>';
}
}
result.classList.remove('succes');
result.classList.add('error');
result.innerHTML = resultText;
if(res.length === inputCollection.length){
result.classList.remove('error');
result.classList.add('succes');
result.innerHTML = 'Data was sent';
setTimeout(function(){
console.log('wait');
}, 2000);
}else{
return false;
}
};
for (let i = 0; i < inputCollection.length; i++) {
inputCollection[i].oninput = function(){
this.classList.remove('error');
this.classList.add('succes');
};
}
а вот весь код
https://jsfiddle.net/serii/65br0ye8/3/
Хочу вывести небольшое сообщение после успешной отправки формы.
Я вставил таймер setTimeout, чтобы задержать на две секунды отправку формы, но это не сработало.
То есть задержка на jsfiddle есть, но совсем небольшая.
Если перед ним сделать return false, а после - return true, тоже не сработает?
Как решить эту проблему?