Я думаю, что ответ Каспара превосходен.В дополнение к этому мы имеем в старых формах функцию для получения элементов по имени класса (не написано нами):
function getElementsByClassName(className, tag, elm){
var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
var tag = tag || "*";
var elm = elm || document;
var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
var returnElements = [];
var current;
var length = elements.length;
for(var i=0; i<length; i++){
current = elements[i];
if(testClass.test(current.className)){
returnElements.push(current);
}
}
return returnElements;
}
Затем мы помещаем class = "validate" в каждый элемент формыкоторая требует проверки и запускает эту функцию при отправке формы (где getFormElementValue - это функция, которая обрабатывает различные элементы формы, как в ответе Каспара):
function validate(){
var elementArray = ( getElementsByClassName('validate') ) ;
for ( i=0; i<elementArray.length; i++){
if( getFormElementValue( elementArray[i] ) == '' ){
alert( 'Form not OK' );
return false;
}
}
}
Приятно, что вы можете легко определитькакие элементы являются обязательными, а какие нет, не прибегая к списку имен / идентификаторов.