解决JS表单验证只有第一个IF起作用的问题
文章来自:https://blog.csdn.net/qq_38215042/article/details/84675988
具体代码如下所述:
if(条件语句){ returnfalse; }else{ returntrue; } if(条件语句){ returnfalse; }else{ returntrue; } if(条件语句){ returnfalse; }else{ returntrue; }
你写的是不是上面这种情况?其实会出现只执行了第一个这种情况,主要是你在ifelse语句中都加入了,return用来返回结果,这种方式其实是没有错的,逻辑也很通顺,不过你仔细想一想,你提交的时候如果返回的是true的话,那么你的form表单就相当于收到了一个可以提交的命令,那么他就会进行表单提交,后面的ifelse语句就不会执行了。
解决的方法:我用的是一种标记,先全部给他们true,如果后面的if语句条件判断为false,就弹出一个弹框进行提示,直到全部都符合条件了,才会给form表单返回一个true.进行表单提交。
有好的方法欢迎评论呦~~~~~~~~~
1:js代码
需要引入jquery
functioncheckForm(){ varproductName=true; varchanDi=true; varmuChanLiang=true; varzongChanLiang=true; varxiangQiang=true; varyuShouJia=true; varphone=true; varpattern=/^1[34578]\d{9}$/;//验证手机号正则表达式 if($("#userName")==""){ alert("请输入产品名称!"); /*alert($("#gsp_add_img_23").val());*/ productName=false; }elseif($("#candi").val()==""){ alert("请输入产地!"); chanDi=false; }elseif($("#muchan").val()==""){ alert("请输入亩产量!"); muChanLiang=false; }elseif($("#zongChan").val()==""){ alert("请输入总产量!"); zongChanLiang=false; }elseif($("#xiangqing").val()==""){ alert("请输入产品详情!"); xiangQiang=false; }elseif($("#yushoujia").val()==""){ alert("请输入预售价!"); yuShouJia=false; }elseif(!pattern.test($("#userPhone").val())){ alert("手机号格式错误"); phone=false; } if(productName==true&&chanDi==true&&muChanLiang==true&& zongChanLiang==true&&xiangQiang==true&&yuShouJia==true&&phone==true){ $("#ListForm").submit(); } }
2:form表单