//示例,初始化要验证的信息,cls顺序存放
var fieldNeedCheck=[]
fieldNeedCheck.push({cls:'base info',el:document.form.PO,msg:'Your PO Number'})
fieldNeedCheck.push({cls:'base info',el:document.form.sd,msg:'Requested Shipping Date'})
..................
fieldNeedCheck.push({cls:'Shipping Information',el:document.form.sd,msg:'Requested Shipping Date'})
function CheckFields(){
  invalidate=[]
  cls=''
  for(var index=0;index<fieldNeedCheck.length;index++){
    var obj=fieldNeedCheck[index];
    //判断条件没看懂,沿用
    if(obj.el){
      if(cls!=obj.cls){invalidate.push(obj.cls);cls=obj.cls;}
      invalidate.push(el.msg);
     }
  }
  return invalidate.length==0?false:invalidate;
}
//实现
var msg=CheckFields(); //返回false或数组
if(msg){
  ...连接字符串并alert
}

解决方案 »

  1.   

    lz应该换一种实现方式。
    方案一:在每个输入框的blur事件中判断是否输入了正确的值,没有就提示。这个很简单,每个blur事件调用一个函数就可以。
    方案二:给每个input取一个id,id可以顺序或按自己的逻辑,在提交前遍历所有id看是否有不符合条件的值,有就做出提示。
      

  2.   

    为什么不遍历document.forms.elements
      

  3.   


    举例说吧:“if(document.form.st){return false;} ”if里面判断的是id="st"的这个元素是不是存在,要是判断输入内容是否为空,要取这个对象的值:if(document.form.st.value==""){return false;}或if(document.form.st.value.replace(/\s/g,"")==""){return false;}//去掉所有空格或者if(document.getElementById("st").value.replace(/\s/g,"")==""){return false;}==============================不过这样写代码量很大,维护起来有点麻烦,最好用遍历的方法做
      

  4.   

    fieldNeedCheck.push({cls:'base info',el:document.form.PO,msg:'Your PO Number'})能解释解释吗?谢谢
      

  5.   

    怎么连接字符串并alert 啊?