注册 登录
编程论坛 ASP技术论坛

【急!】javascript验证两个form中的文本框,调试的时候只有第一个生效怎么回事?

上岸人鱼 发布于 2016-03-24 18:31, 6260 次点击
javascript验证两个form中的文本框,调试的时候只有第一个生效怎么回事?
验证状态是过了,下面一个else一个都没过,纠结死了!

<script   language="javascript">
function   CheckForm()
{//--------------------------------------------------------------------------------验证“状态”
if   (document.form1.ZT.value.length   ==   0)  
 {  
    alert("ZT不能为空!");
    document.form1.ZT.focus();
    return   false;
}
else
    //var reg=/^[\u0391-\uFFE5]+$/;//验证用户名是否为中文//  /[^\x00-\x80]/这个只能验证纯中文
    var reg=/^[\u4e00-\u9fa5a-zA-Z0-9]+$/;
    //var reg=/([a-z][A-Z][0-9][\u4e00-\u9fa5])+/;
    //   /^[u4E00-u9FA5]+$/;//验证非法字符,输入可以为数字和英文
    var a=document.getElementById("zt").value;
    if(!reg.test(a))
     {
        alert("zt非法字符!!");
        document.form1.zt.focus();
        return   false;
   }
//---------------------------------------------------------------------------------验证"批号"
else
 if   (document.form1.PH.value.length   ==   0)  
 {  
    alert("PH不能为空!");
    document.form1.PH.focus();
    return   false;
}
else
    //var reg=/^[\u0391-\uFFE5]+$/;//验证用户名是否为中文//  /[^\x00-\x80]/这个只能验证纯中文
    var reg=/([a-z][A-Z][0-9][-])+/;
    //   /^[u4E00-u9FA5]+$/;//验证非法字符,输入可以为数字和英文
    var a=document.getElementById("PH").value;
    if(!reg.test(a))
     {
        alert("PH非法字符!!");
        document.form1.PH.focus();
        return   false;
   }
//--------------------------------------------------------------------------------验证form2的“挑片数”
else
if   (document.frm2.tp.value.length   ==   0)  
 {  
    alert("请输入挑片数!");
    document.frm2.tp.focus();
    return   false;
}
else
if   (document.frm2.tp.value   >=   48   ||   document.frm2.tp.value   <   1)
{  
alert("挑片数不能小于1大于48!");
document.frm2.tp.focus();
return   false;
}
else
    var reg=/^[0-9]*$/;//验证年龄是否为数字(正整数+0)或者/^\d+$/ /^\d*$/
    var a=document.getElementById("tp").value;
    if(!reg.test(a))
     {
        alert("提示:“挑片数”请输入数字!!");
        document.frm2.tp.focus();
        return   false;
   }
}
-->
</script>
13 回复
#2
hu9jj2016-03-24 19:20
先简化一下代码,看if判断是否与设想的一致。
#3
上岸人鱼2016-03-24 19:23
回复 2楼 hu9jj
我试过了,除了第一个留着,其他的都删了,调试的时候第一个可行,把第二个放上去的时候,第一个可行,第二个就不提示
#4
hu9jj2016-03-25 11:23
if   (document.form1.ZT.value.length   ==   0)  
   {  
    alert("ZT不能为空!");
    document.form1.ZT.focus();
    return   false;
   }
else
    //var reg=/^[\u0391-\uFFE5]+$/;//验证用户名是否为中文//  /[^\x00-\x80]/这个只能验证纯中文
    var reg=/^[\u4e00-\u9fa5a-zA-Z0-9]+$/;
    //var reg=/([a-z][A-Z][0-9][\u4e00-\u9fa5])+/;
    //   /^[u4E00-u9FA5]+$/;//验证非法字符,输入可以为数字和英文
    var a=document.getElementById("zt").value;
    if(!reg.test(a))
       {
        alert("zt非法字符!!");
        document.form1.zt.focus();
        return   false;
       }
       //---------------------------------------------------------------------------------验证"批号"
    else
       if   (document.form1.PH.value.length   ==   0)  
          {  
          alert("PH不能为空!");
          document.form1.PH.focus();
          return   false;
          }
       else
          //var reg=/^[\u0391-\uFFE5]+$/;//验证用户名是否为中文//  /[^\x00-\x80]/这个只能验证纯中文
          var reg=/([a-z][A-Z][0-9][-])+/;
          //   /^[u4E00-u9FA5]+$/;//验证非法字符,输入可以为数字和英文
          var a=document.getElementById("PH").value;
          if(!reg.test(a))
             {
              alert("PH非法字符!!");
              document.form1.PH.focus();
              return   false;
              }
              //--------------------------------------------------------------------------------验证form2的“挑片数”
          else
              if   (document.frm2.tp.value.length   ==   0)  
                  {  
                  alert("请输入挑片数!");
                  document.frm2.tp.focus();
                  return   false;
                  }
              else
                  if   (document.frm2.tp.value   >=   48   ||   document.frm2.tp.value   <   1)
                       {  
                        alert("挑片数不能小于1大于48!");
                        document.frm2.tp.focus();
                        return   false;
                       }
                  else
                        var reg=/^[0-9]*$/;//验证年龄是否为数字(正整数+0)或者/^\d+$/ /^\d*$/
                        var a=document.getElementById("tp").value;
                        if(!reg.test(a))
                           {
                            alert("提示:“挑片数”请输入数字!!");
                            document.frm2.tp.focus();
                            return   false;
                            }
}
-->
#5
hu9jj2016-03-25 11:24
我这样理了一遍,看能发现问题么
#6
上岸人鱼2016-03-25 14:39
回复 5楼 hu9jj
用你的,第一个也不提示了
#7
hu9jj2016-03-25 16:51
以下是引用上岸人鱼在2016-3-25 14:39:54的发言:

用你的,第一个也不提示了
我并没有修改程序代码,仅仅是通过缩进代码来理顺逻辑结构,希望能够让你找出代码的逻辑问题。

[此贴子已经被作者于2016-3-25 16:53编辑过]

#8
hu9jj2016-03-25 16:53
没有发现前三行(包括注释行)不涉及逻辑结构,没有粘贴过来吗。
#9
上岸人鱼2016-03-25 17:06
回复 8楼 hu9jj
头昏了,查不出来。。。。。。
#10
hu9jj2016-03-26 07:39
可以检查一下每个if后面的判断是否符合需要。
#11
上岸人鱼2016-03-28 14:38
我自己查出来了,是大小写的问题
#12
上岸人鱼2016-03-28 14:40
<script   language="javascript">
function   CheckForm()
{//--------------------------------------------------------------------------------验证“状态”
if   (document.frm1.ZT.value.length   ==   0)  
 {  
    alert("ZT不能为空!");
    document.frm1.ZT.focus();
    return   false;
}
    var reg=/^[\u4e00-\u9fa5a-zA-Z0-9]+$/;
    var a=document.getElementById("zt").value;
    if(!reg.test(a))
     {
        alert("zt非法字符!!");
        document.frm1.zt.focus();
        return   false;
   }

//---------------------------------------------------------------------------------验证"批号"
else
 if   (document.frm1.PH.value.length   ==   0)  
 {  
    alert("PH不能为空!");
    document.frm1.PH.focus();
    return   false;
 }
    //var reg=/([a-z][A-Z][0-9][-])+/;
    var reg=/^(?!-)(?!.*?-$)[a-zA-Z0-9-]+$/;
    var a=document.getElementById("PH").value;
    if(!reg.test(a))
     {
        alert("PH非法字符!!");
        document.frm1.PH.focus();
        return   false;
     }
}//以上验证都OK
//--------------------------------------------------------------------------------验证form2的“挑片数”
function   CheckForm2()
{
if   (document.form2.tp.value.length   ==   0)  
 {  
    alert("请输入挑片数!");
    document.form2.tp.focus();
    return   false;
}
else
if   (document.form2.tp.value   >=   48   ||   document.form2.tp.value   <   1)
{  
alert("挑片数不能小于1或大于48!");
document.form2.tp.focus();
return   false;
}

    var reg=/^[0-9]*$/;//验证年龄是否为数字(正整数+0)或者/^\d+$/ /^\d*$/
    var a=document.getElementById("tp").value;
    if(!reg.test(a))
     {
        alert("提示:“挑片数”请输入数字!!");
        document.form2.tp.focus();
        return   false;
   }
     
}

</script>
#13
上岸人鱼2016-03-28 14:40
这是调试成功的脚本,谢谢老师提醒
#14
zhulei19782016-06-05 07:23
<script   language="javascript">
 function   CheckForm()
 {//--------------------------------------------------------------------------------验证“状态”
if   (document.form1.ZT.value.length   ==   0)  
  {  
     alert("ZT不能为空!");
     document.form1.ZT.focus();
     return   false;
 }
 else
     //var reg=/^[\u0391-\uFFE5]+$/;//验证用户名是否为中文//  /[^\x00-\x80]/这个只能验证纯中文
    var reg=/^[\u4e00-\u9fa5a-zA-Z0-9]+$/;
     //var reg=/([a-z][A-Z][0-9][\u4e00-\u9fa5])+/;
     //   /^[u4E00-u9FA5]+$/;//验证非法字符,输入可以为数字和英文
    var a=document.getElementById("zt").value;
     if(!reg.test(a))
      {
         alert("zt非法字符!!");
         document.form1.zt.focus();
         return   false;
    }
 //---------------------------------------------------------------------------------验证"批号"
else if   (document.form1.PH.value.length   ==   0)  
  {  
     alert("PH不能为空!");
     document.form1.PH.focus();
     return   false;
 }
 else
     //var reg=/^[\u0391-\uFFE5]+$/;//验证用户名是否为中文//  /[^\x00-\x80]/这个只能验证纯中文
    var reg=/([a-z][A-Z][0-9][-])+/;
     //   /^[u4E00-u9FA5]+$/;//验证非法字符,输入可以为数字和英文
    var a=document.getElementById("PH").value;
     if(!reg.test(a))
      {
         alert("PH非法字符!!");
         document.form1.PH.focus();
         return   false;
    }
 //--------------------------------------------------------------------------------验证form2的“挑片数”
else if   (document.frm2.tp.value.length   ==   0)  
  {  
     alert("请输入挑片数!");
     document.frm2.tp.focus();
     return   false;
 }
 else if   (document.frm2.tp.value   >=   48   ||   document.frm2.tp.value   <   1)
 {  
 alert("挑片数不能小于1大于48!");
 document.frm2.tp.focus();
 return   false;
 }
 else
     var reg=/^[0-9]*$/;//验证年龄是否为数字(正整数+0)或者/^\d+$/ /^\d*$/
     var a=document.getElementById("tp").value;
     if(!reg.test(a))
      {
         alert("提示:“挑片数”请输入数字!!");
         document.frm2.tp.focus();
         return   false;
    }
 }
 -->
 </script>

else和if要放在一行的吧
1