javascript需要循环判断几个input不能全为空,有一个不为空则提交,全为空则不体检,怎么写:
我这样写好像不行,
var lng = eval("document.form1.orderLeng.value");

for(i=0;i<lng;i++){
var voucherOrderSum = eval("document.form1.voucherOrderSum"+i+".value");
if(trim(voucherOrderSum)!=''){
return true;
}
}
alert("您还没有申请任何一个订单,不能提交!");
return false;

解决方案 »

  1.   

    var inpArray = document.getElementById("formID").getElementsByTagName("input");
    var count = 0;
    for(var i=0; i<inpArray.length; i++) {
        if(inpArray[i].value == "") {
            count++;
            if(count < inpArray.length) {
                return true;
            } else {
                alert("您还没有申请任何一个订单,不能提交!");
                return false;
            }
        }
    }刚学不久,不知道这样写是否可行
      

  2.   

    var lng = eval("document.form1.orderLeng.value");
        var count = 0;
        for(i=0;i<lng;i++){
            var voucherOrderSum = eval("document.form1.voucherOrderSum"+i+".value");
              if(trim(voucherOrderSum)==''){
                 count++;
              }
              if(count<lng-1){
              return true;
            }else{
             alert("您还没有申请任何一个订单,不能提交!");
        return false;     }
        }    
       
      

  3.   

    eval()这个东西,是千万不能用的。
    比较官方的javascript的规范中提到:eval 是恶魔,eval是JavaScript中最容易被滥用的方法。避免使用它。 <script language="javascript" src="/j/jquery-1.4.2.js"></script> 
    <script type="text/javascript">
        function sssff(){
            var null_cnt=0;
            $("form > input[type=text]").each(function(i,n){
                if (n.value=="")
                {
                    null_cnt++;
                }
            }); 
            if (null_cnt<=1)
            {
                alert("可以提交");
                return true;
            }else{
                alert("不可以提交");
                return false;
            }
        }
    </script>
      

  4.   


    var lng = eval("document.form1.orderLeng.value");
        
        for(i=0;i<lng;i++){
            var voucherOrderSum = eval("document.form1.voucherOrderSum"+i+".value");
            if(trim(voucherOrderSum)==''){
                break;//只要有一个为空就跳出循环,执行下面的alert
            }
            if(i==lng-1)
                return true;//判断是否是最后一个,如果是最后一个就说明全都不为空,因为为空的已经跳出循环了,
        }    
        alert("您还没有申请任何一个订单,不能提交!");
        return false;
      

  5.   

    最好避免使用eval   特别是来源不明的代码更要避免eval去转义 
    eval 会执行它解析的代码  如有里面有函数 会被注册执行   而不是当成字符串来处理
      
    例:eval("alert(0);");  会在页面弹出警告   0
      

  6.   

    var inpArray = document.getElementsByName("input");
    var count = 0;
    for(var i=0; i<inpArray.length; i++) {
      if(inpArray[i].value == "") {
      count++;  }
    }
    if(count < inpArray.length) {
      return true;
    } else {
      alert("您还没有申请任何一个订单,不能提交!");
      return false;
    }
    这是最简单的判断方法,不过也最安全