`
习惯在马桶上思考
  • 浏览: 114896 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

统一校验的东东

    博客分类:
  • JS
阅读更多
应公司要求写了一个统一校验的东西 ,结果发现跟prototype一个插件思想上重合了,它是一年前开源的,我也是差不多一年写的,今天拿出来晒下。



//让渡$
var $j = jQuery.noConflict();

function MyValidate(){

}

//验证是否为空  
MyValidate.checkEmpty = function(obj){
var flag = true;
if (StringUtil.getLength(StringUtil.trimAllSpace(obj.value))<1){       
   $j(obj).attr("title","["+obj.titles+"]项不能为空。");     
   flag = false;
   return flag;
}
return flag;
}

//验证取值范围
MyValidate.checkLength = function(obj){
var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
//获取当前对象长度
var len=StringUtil.getLength(StringUtil.trimAllSpace(obj.value));
if($j(obj).attr("maxLength")<len||len<$j(obj).attr("minLength")){
  $j(obj).attr("title","["+obj.titles+"]取值范围是\'"+$j(obj).attr("minLength")+"\'位到\'"+$j(obj).attr("maxLength")+"\'位之间。");         
     flag = false;//设置返回标志
      return flag;
  }
    return flag;
}
//验证最大长度
MyValidate.checkMaxLength = function(obj){
    var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
if(StringUtil.getLength(StringUtil.trimAllSpace(obj.value))>$j(obj).attr("length")){
            $j(obj).attr("title","["+obj.titles+"]最大长度是\'"+$j(obj).attr("length")+"\'。");         
            flag = false;//设置返回标志
            return flag;
}
    return flag;
}
//验证邮政编码
MyValidate.checkPostalCode = function(obj){
    var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
if(!VerifyUtil.isPostalCode(StringUtil.trimAllSpace(obj.value))){
$j(obj).attr("title","请输入正确的["+obj.titles+"]。");  
            flag = false;
            return flag;
}
    return flag;
}

//验证固定电话与手机号码
MyValidate.checkPhoneAndMobile = function(obj){
    var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
if(!VerifyUtil.isMobile(StringUtil.trimAllSpace(obj.value)) || !VerifyUtil.isPhoneEx(StringUtil.trimAllSpace(obj.value))){
$j(obj).attr("title","请输入正确的["+obj.titles+"]。");  
            flag = false;
            return flag;
}
    return flag;
}
//验证只能输入整数字符(不带小数点)
MyValidate.checkIsInt = function(obj){
    var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
if(!VerifyUtil.isInt(StringUtil.trimAllSpace(obj.value))){
$j(obj).attr("title","请输入正确的["+obj.titles+"]。");  
            flag = false;
            return flag;
}
    return flag;
}

//验证非法字符
MyValidate.checkValidString = function(obj){
var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
if(!VerifyUtil.isValidString(StringUtil.trimAllSpace(obj.value))){
$j(obj).attr("title","["+obj.titles+"]中存在非法字符。");          
            flag = false;
            return flag;
}
return flag;
}

//验证传真号码
MyValidate.checkPhoneEx = function(obj){
var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
if(!VerifyUtil.isPhoneEx(StringUtil.trimAllSpace(obj.value))){
$j(obj).attr("title","请输入正确的["+obj.titles+"]。");
            flag = false;
            return flag;
}
return flag;
}

//验证手机号码
MyValidate.checkMobile= function(obj){
var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
if(!VerifyUtil.isMobile(StringUtil.trimAllSpace(obj.value))){
$j(obj).attr("title","请输入正确的["+obj.titles+"]。");           
            flag = false;
            return flag;
}
return flag;
}



//验证EMAIL
MyValidate.checkEmail= function(obj){
var flag = true;
if(StringUtil.getLength(obj.value)<1) return flag;//对象为空则返回
if(!VerifyUtil.isEmail(StringUtil.trimAllSpace(obj.value))){
$j(obj).attr("title","请输入正确的["+obj.titles+"]。");
            flag = false;
            return flag;
}
return flag;
}

var myArray = new Array("checkEmpty","checkLength","checkMaxLength","checkPostalCode","checkValidString","checkPhoneEx","checkMobile","checkEmail","checkPhoneAndMobile","checkIsInt");


//验证元素
//@param area 参数可以是div,table,form等元素的id或styleId表示的是一个范围。
function checkElement(area,type){

var flag = true;//返回标志
  //按回车跳转事件
$j("input,textarea,select").each( function(i) {
$j(this).attr("tabIndex",++i);
$j(this).keypress( function() {
     FormUtil.nextFocusEx(this.form);
        });
});
    
//匹配一个范围内所有的文本框及文本域
$j("#"+area).find("input[@type=text],textarea").each(function (i) {  

//提交校验
  if(type=="submit"){
               flag=initValidate(this);
            
  }
 
    //失去焦点校验
  $j(this).blur( function() {
              flag=initValidate(this);
               if(!flag)
                 return flag; 
  });    
});

    $j("#"+area).find(".Edit_input_error").each(function (i) { 
     //提交后定位到第一个错误样式项并弹出提示信息
     var errorMessage=$j("#"+area).find(".Edit_input_error:first").attr("title");//匹配第一个错误样式项title属性
     alert(errorMessage);//弹出错误信息
        $j(".Edit_input_error:first").focus();//光标定位
           flag = false;   
           return flag;//返回不提交
        });
return flag;
}

function  initValidate(obj){
var flag = true;//返回标志
var funArr = new Array();//保存函数名称的数组
var attrArr = new Array();//保存函数属性的数组
var classArr=obj.className.split(" ");//根据" "来获取多校验函数
    for(var i=0,j=0;i<classArr.length;i++){
if(classArr[0].indexOf("attr")==-1){//判断class首个对象是否为添加属性,
   // flag = false;
                return flag;//不满足条件返回
}
eval("$j(obj)."+classArr[0]);//给当前操作对象动态添加'titles'属性

var returnArr=classArr[i].split(".");//根据"."来分离函数及属性
         if(2==returnArr.length){
          funArr[j]=returnArr[0];
          attrArr[j]=returnArr[1];
//alert(funArr[j]);
// alert(attrArr[j]);
                  eval("$j(obj)."+attrArr[j]); //给当前操作对象动态添加属性  
             }else{
                  funArr[j]=returnArr[0];  
}
j++;
        } 
for(var i=0;i<funArr.length;i++){
for(var a in myArray){
   if(funArr[i] ==myArray[a]){
  MyValidate.validate=MyValidate[funArr[i]];
      var result=MyValidate.validate(obj);
  if(!result){
$j(obj).addClass('Edit_input_error');//加载错误样式
     flag = false;
                     return flag;//不满足条件返回
  }else{
  //flag = true;
                     $j(obj).removeClass('Edit_input_error');//移除错误样式
$j(obj).removeAttr('title');//校验通过移除title属性
  }
   }
}
}

return flag;
}



这个东东并没有什么成果而言,主要是它的实现方式吧,本人JQUERY用的不是很好,很多地方高手看了不要笑,但可以指点吧!文中具体的校验方法的代码我这里就不晒了,网上一搜一大片,没有必要写出来!
分享到:
评论

相关推荐

    统一社会信用代码校验函数SQL

    校验统一社会信用代码的合法性,是SQL2008的标量函数

    社会统一信用代码校验函数(JavaScript)

    ### 社会统一信用代码校验函数(JavaScript) #### 知识点概述 本文将详细介绍一个用于验证中国社会统一信用代码的社会统一信用代码校验函数(JavaScript)。此函数旨在检查输入的社会统一信用代码是否符合规定的...

    Oracle校验统一社会信用代码函数

    本人根据GB 32100-2015 法人和其他组织统一社会信用代码编码规则原创,经过测试可以用于商业环境。

    统一社会信用代码校验.html

    js写的一个校验脚本,完全符合校验规则,方便校验,也可以写在程序中作为校验。

    统一社会信用代码校验规则

    本文档只说明统一社会信用代码的构成,编码规则,和校验位的计算规则,不设计具体的代码实现。 不过根据编码规则可以使用任何开发语言实现校验功能。

    Spring Boot + Security + JWT 实现接口统一 Token 校验

    Spring Boot + Security + JWT 实现接口统一 Token 校验,详见:https://blog.csdn.net/z1353095373/article/details/122859572

    统一信用代码校验和生成.zip

    java生成统一信用代码和校验统一信用代码

    统一社会信用代码校验(JS)

    用js写的校验统一社会信用代码,项目中用到的,测试可用。

    oracle统一社会信用代码校验函数

    oracle统一社会信用代码的校验函数

    java 利用POI对Execel表格的统一导入与校验(利用Hibernate Validator)

    5. **统一的导入与校验**: 在描述中提到的"统一封装"意味着创建一个通用的导入机制,这个机制可以接受不同的Excel模板,并根据预定义的校验规则进行数据验证。这样做可以提高代码的复用性,减少开发工作量,使得新...

    统一社会信用代码校验

    统一社会信用代码校验java代码写的,是一个老前辈给的校验规则,我手动用代码实现了,试了适用正常的税号。

    spring aop+自定义注解+反射实现统一校验脚手架

    2018.5.22 1、添加分组校验 2、修改校验值合法时必须传参标示问题,现在可以不传 3、错误描述添加统一配置 工程介绍:SpringBoot项目脚手架,利用spring aop+java反射实现自定义注解校验参数 源码里有使用都例子在...

    XML校验工具,可以用来进行XML合法性检验

    ### XML校验工具详解 #### 一、XML与W3C简介 - **XML(Extensible Markup Language)**:一种标记语言,旨在定义一套规则,用于结构化文档中数据的存储和传输。XML的设计目标是尽可能地保持数据的原始性和纯粹性,...

    CheckTool:CRC校验、累加和校验、异或和校验专业校验工具V1.0

    《CheckTool:全面解析CRC、累加和及异或和校验在IT领域的应用》 在信息技术领域,数据的完整性和准确性至关重要。为确保数据在传输、存储过程中的无误,我们经常使用各种校验机制,如CRC(Cyclic Redundancy Check...

    JAVA实现社会统一信用代码校验的方法

    JAVA实现社会统一信用代码校验的方法 JAVA实现社会统一信用代码校验的方法是指使用JAVA语言来实现社会统一信用代码的校验,确保社会统一信用代码的正确性和合法性。本文主要介绍了JAVA实现社会统一信用代码校验的...

    累加校验和CRC16校验计算器

    累加校验和CRC16校验是两种广泛应用于数据通信和存储系统中的错误检测机制。它们的主要目的是确保数据在传输或存储过程中没有发生错误,从而提高数据的可靠性。 **累加校验(Accumulator Checksum)** 累加校验是...

    BCC校验(异或校验)计算

    **BCC校验(异或校验)计算详解** 在信息技术领域,数据的准确性至关重要,因此,各种校验机制被广泛应用于确保数据在传输过程中的完整性。BCC(Block Check Character,块校验字符)是一种简单而有效的错误检测...

    累加和校验,异域和校验工具

    累加和校验与异域和校验是两种在数据通信和存储系统中常见的错误检测方法,用于确保数据在传输或存储过程中没有发生错误。这些校验方法在计算机科学和IT领域扮演着至关重要的角色,因为它们能有效地提高数据的可靠性...

Global site tag (gtag.js) - Google Analytics