Показать сообщение отдельно
  #9 (permalink)  
Старый 09.03.2015, 16:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Как, обычно, обойти в цикле элементы формы, передав их в функцию:

[ntml]<input type="submit" value="Send" onclick="validate(this.form.elements)">[/hml]

Но лучше не передавать в функцию по щелчку кнопки отправки, а зайдествовать событие формы onsubmit:

<form name="Myform">
[ntml]<form name="Myform" onsubmit="return validate(this.elements)">
....
<input type="submit" value="Send">[/hml]


Функцию checkLname() выкинуть, так как она у вас ничем полезным не занимается - alert('Имя должно быть обязательно введено') и alert("Некорректное введено имя!") это результат проверки, разница лишь в условии, а значит это может с успехом выполнить одна функция.

Функция validate(e) должна иметь параметр (например как тут, е), который и содержит массив всех элементов формы переданный ей по нажатию кнопки отправки, что инициализирует событие onsubmit.

Ну а далее цикл (в функции validate):

for(var i=0, k=e.length; i<k; i++) {
   //проверка значения полей
   //и каждое поле может иметь атрибут pattern описывающий условие проверки поля
}


Зайдите сюда там о проверке полей формы, правда под jQuery, но это не важно, важно понять принцип, а на чем написать, это уже вторичное.

После этого можно и продолжить.
Ответить с цитированием