Проблема - в том, что не получается реализовать проверку каждого условия, а не какого-то конкретного в отдельности. Мне нужно, чтобы форма не отправлялась, пока не будут соблюдены все условия. Вот мой код: Сейчас, если все поля пусты, при нажатии на кнопку "Отправить", в поле ошибки выводится "Введите свое имя на русском языке...", хотя я ожидаю "Заполните все поля". Я запутался в своих же условиях. В общем, никак я этой форме ума не дам.
window.onload = function() {
form = document.forms[0],
fields = form.getElementsByTagName('input'),
msg = form.getElementById('required'),
regExp = /^[А-Яа-яЁё\W\s\d]+$/;
form.onsubmit = function(event) {
for (var i = 0; i < fields.length; i++) {
if (!fields[i].value) {
event.preventDefault();
fields[i].className = 'invalid';
msg.innerHTML = 'Заполните обязательные поля';
}
else
fields[i].className = "";
if (fields[0].value.search(/^[А-Яа-яЁё]+$/)) {
event.preventDefault();
msg.innerHTML = fields[0].title;
fields[0].className = 'invalid';
}
else if (fields[2].value.search(regExp)) {
event.preventDefault();
msg.innerHTML = fields[2].title;
fields[2].className = 'invalid';
}
else if (fields[3].value.search(regExp)) {
event.preventDefault();
msg.innerHTML = fields[3].title;
fields[3].className = 'invalid';
}
}
}
}
Последний раз редактировалось seniormelikyan, 01.08.2013 в 11:14.
|