/* Валидатор форм Проверяет правильность заполнения формы Не проверяет: если элемент disabled если у него не заполнен параметр alt Поля: text/password/textarea - alt="re", проверяет в соответствии с регулярным выражением radio - alt!="", проверяет чтобы хотя бы 1 элемент с таким же именем был выбран select - alt!="", проверяет чтобы value!="" chechbox - alt="N", проверяет чтобы хотя бы 1 элемент с таким же alt был выбран Примеры alt: ^.{1,}$ - не пустая строка ^\d{1,}$ - не пустая строка, только цифры Примечание: passwordId/passwordcId - специальные переменные для проверки пароля @param form - проверяемая форма @return - результат проверки true/false viktoral */ function formValidate(form) { var i; var type; var result = true; for (i = 0; i < form.length; i++) { type = form[i].type; result &= itemValidate(form[i]); } return result != 0; } /* Проверяет правильность введенного значения в поле, по RE в alt. Если значение не верное - выводит сообщение с ID fmsg_ID и подсвечивает поле @param i - ID проверяемого элемента @return - результат проверки true/false viktoral */ function itemValidate(i) { var m; var id = i.id; if (i.disabled == true) return true; if (i.alt == "") return true; if (i.alt == false) return true; if (i.alt == null) return true; var v = i.alt; //if (!v) return true; //alert(i.type); //if (i.alt == null) return true; i.value = i.value.trim(); if ((i.type == "text")||(i.type == "textarea")||(i.type == "file")) { //alert(i.type); //alert(i.alt); //alert(i.value); var re = new RegExp (v, 'i'); m = i.value.match(re) != null; } if (i.type == "password") { var re = new RegExp (v, 'i'); m = i.value.match(re) != null; if(document.getElementById('passwordсId') != null) { if(i.value != document.getElementById('passwordсId').value) m = false; } } if (i.type == "select-one") { m = i.options[i.selectedIndex].value != ""; } if (i.type == "checkbox") { m = false; for (n = 0; n < i.form.length; n++) { if ((i.form[n].alt == i.alt)&&(i.form[n].checked)) m = true; } } if (i.type == "radio") { m = false; for (n = 0; n < i.form.length; n++) { if ((i.form[n].name == i.name)&&(i.form[n].checked)) m = true; } } //if(i.type != "select-one") if (m) i.style.backgroundColor = "white"; else i.style.backgroundColor = "#FFA090"; var div = document.getElementById('fmsg_'+id); if (div) { if (m) display = 'none'; else display = 'block'; //div.innerHTML = messages[id]; div.style.display = display; } return m; }