Показать сообщение отдельно
  #4 (permalink)  
Старый 01.08.2013, 11:05
Интересующийся
Отправить личное сообщение для seniormelikyan Посмотреть профиль Найти все сообщения от seniormelikyan
 
Регистрация: 01.08.2013
Сообщений: 21

Проблема - в том, что не получается реализовать проверку каждого условия, а не какого-то конкретного в отдельности. Мне нужно, чтобы форма не отправлялась, пока не будут соблюдены все условия. Вот мой код: Сейчас, если все поля пусты, при нажатии на кнопку "Отправить", в поле ошибки выводится "Введите свое имя на русском языке...", хотя я ожидаю "Заполните все поля". Я запутался в своих же условиях. В общем, никак я этой форме ума не дам.

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.
Ответить с цитированием