js实现简易版validate

需求分析

项目中需要根据选择不同的类型,显示不同的表单,采用的方法是css隐藏显示不需要的表单,但是这个表单字段都是必填的,尝试把不同的表单放在不同的form里,提交时根据不同的类型调用miniui自带的validate方法,结果失败,验证了不同表单的所有字段,所以只能自己实现一个简易版的validate方法,功能是根据不同的类型,判断字段是否为空,如果是空则提示。

代码实现

提示函数

因为每个字段都需要单独判断所以把提示封装成一个函数

       function showk(){
    	   mini.alert("表单字段均为必填!");
       }

核心功能

根据输入的type拼接上各个字段就能得到type类型表单的字段

     function myvalidate (type) {
          var name = mini.get(type+"unitname");
    	  var licnum = mini.get(type+"licnum");

    	                ...

    	  var fax = mini.get(type+"fax");
    	  var creditcode = mini.get(type+"creditcode");
    	  if(name.getValue()==''){
    		  showk();
    		  return "w";
    	  }
    	  if(licnum.getValue()==''){
    		  showk();
    		  return "w";
    	  }

    	       ...

    	  if(email.getValue()==''){
    		  showk();
    		  return "w";
    	  }
    	  if(fax.getValue()==''){
    		  showk();
    		  return "w";
    	  }
    	  if(creditcode.getValue()==''){
    		  showk();
    		  return "w";
    	  } */
    	  if(type=="use"){
    		  var useunittype = mini.get("useunittype")
    		  if(useunittype.getValue()==''){
    			 showk();
    			 return "w";
    		  }
    	  }
       }

代码优化

写这么长实在是太傻了,类型后面的字段大部分都是一样的,可以放在一个数组里然后迭代,不同的分别写if就行了,也不知道第一次写的时候为啥没想到,可能这就是菜吧

     function myvalidate(type){
    	  var field=["unitname","licnum",...,"fax","creditcode"];
    	  for(var f of field){
    		  var temp = mini.get(type+f);    
    		  if(temp.getValue()==''){
        		  showk();
        		  return "w";
        	  }
    	  }
    	  if(type=="use"){
    		  var useunittype = mini.get("useunittype")
    		  if(useunittype.getValue()==''){
    			 showk();
    			 return "w";
    		  }
    	  }
       }

总结

还是要多写,不然实际问题来临,手忙脚乱。

原文地址:https://www.cnblogs.com/ljsh/p/10700851.html