var eles =form1.elements;
for(i =0;i<eles.length;i++)
{
   if(eles[i].tagName.toUpperCase()=="INPUT"/*还有textarea,select,自己加*/){
     if(eles[i].value==""){
       alert( "请重新输入" );
       eles[i].focus();
       return false;
     }
   }
   //另外,我能不能在这里获得标签的类型,名字和id呢?
   var tagn=eles[i].tagName;
   var name=eles[i].name;
   var id=eles[i].id;
}

解决方案 »

  1.   

    function foo(){
    var elements = document.forms[0].elements; //就当这是你的那个表单
    for(var i=0,l=elements.length;i<l;i++){ //遍历表单
      if(elements[i].tagName == "INPUT"&&(elements[i].type == "text")){  //tagName本来就是大写的,不需要转换
         if(elements[i].value.replace(/\s/g,"") == ""){
            alert("你输入的内容为空");  //这里使用正则表达式才能确定是否全是空字符的情况
            elements[i].focus(); //聚焦
            return false;  //如果这个方法是被绑定在表单的onsubmit事件上的,将取消表单的提交
         }
       }
    }return true;  //最后返回true
    }
      

  2.   

    什么叫高效?这才叫高效的,他的for循环的条件部分太老了些...