`
习惯在马桶上思考
  • 浏览: 114621 次
  • 性别: 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用的不是很好,很多地方高手看了不要笑,但可以指点吧!文中具体的校验方法的代码我这里就不晒了,网上一搜一大片,没有必要写出来!
分享到:
评论

相关推荐

    2023年第三届长三角数学建模c题考试题目.zip

    2023年第三届长三角数学建模c题考试题目,可下载练习

    基于人工智能的毕业设计辅助系统基础教程

    随着人工智能技术的飞速发展,越来越多的学生和研究人员开始利用AI技术来辅助他们的毕业设计。本教程旨在指导读者如何开发一个基于人工智能的毕业设计辅助系统,帮助学生更高效地完成毕业设计任务。

    yolo算法-人脸情绪数据集-9400张图像带标签-内容-愤怒-害怕-厌恶-中立的-惊喜-悲哀的-幸福的.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    ijkplayer播放rtsp延时越来越高处理方案

    文件1

    分布式应用运行时的落地实践.pdf

    分布式应用运行时的落地实践.pdf

    会议席卡制作模版,电子表格,方便实用

    席卡制作模版会议较多的单位,经常要打印席卡,本模版可以解决燃眉之急

    大模型下的多模态智能风控落地实践.pdf

    大模型下的多模态智能风控落地实践.pdf

    ldplayer9-com.tencent.nfsonline-402497-ld.exe

    游戏

    Alibaba-Dragonwell-Extended-21.0.5.0.5.9-x64-windows.zip

    Alibaba Dragonwell 是一款免费的 OpenJDK 发行版,其提供长期支持,包括性能增强和安全修复

    培养解决复杂问题能力的PHP MySQL数据库应用系统开发教学案例

    内容概要:本文详细介绍了多个数据库应用系统的开发教学案例,旨在培养学生的复杂问题解决能力。每个案例均包括系统背景、功能模块、ER图设计、关系模式转换和实际编码等内容。涉及的具体系统包括实验耗材管理信息系统、创新项目管理信息系统、宿舍管理信息系统、学生成绩管理系统、党员管理信息系统和学生信息管理系统等。 适合人群:计算机专业学生、数据库课程教师及数据库开发爱好者。 使用场景及目标:适用于高校的数据库课程教学,帮助学生掌握数据库系统的设计与开发方法,提高其实际开发能力和解决问题的能力。 其他说明:文章不仅提供了详细的开发步骤,还包括了评分标准和格式要求,便于教师评估学生的作品。同时,文章提供的多种案例覆盖了不同的应用场景,使学生能够更好地理解和应用所学的知识。

    (源码)基于ARM平台的钢琴游戏系统.zip

    # 基于ARM平台的钢琴游戏系统 ## 项目简介 本项目是一个基于ARM平台的钢琴游戏系统。游戏利用开源代码进行修改,旨在为用户提供一种在开发板上模拟弹奏钢琴的体验。用户可以通过触摸屏或鼠标点击键盘按键来播放音乐,体验类似于真实钢琴的触感。此项目主要面向对计算机编程、嵌入式系统以及音乐有兴趣的用户。 ## 项目的主要特性和功能 1. 真实模拟钢琴键盘游戏提供了类似真实钢琴的键盘布局,用户可以通过触摸或点击来模拟弹奏。 2. 多功能触摸输入除了基本的键盘操作,游戏还支持触摸输入其他功能,如音量调节、曲目选择等。 3. 音效反馈每次按键都会产生相应的音效反馈,为用户带来真实的弹奏体验。 4. 图形界面优化游戏界面设计简洁明了,易于用户操作。 5. 多线程处理游戏采用多线程技术处理屏幕绘制、音频播放等任务,确保流畅运行。 6. 开源代码修改基于开源代码进行修改和优化,提高了系统的稳定性和兼容性。 ## 安装使用步骤(假设用户已下载本项目的源码文件)

    C#ASP.NET采购评审专家管理系统源码数据库 SQL2008源码类型 WebForm

    ASP.NET采购评审专家管理系统源码 功能描述:1.系统登录:通过输入用户及密码登录系统(密码经过加密处理); 2.业务管理: (1)专家管理、添加专家信息、编辑专家信息、删除专家信息; (2)专家抽取、抽取项目列表、创建项目抽取(设置抽取人数,专家类型,随机抽取)、查看抽取记录; (3)类型管理、添加类型、编辑类型、删除类型; 3.系统管理: (1)管理员管理、添加管理员、编辑管理员信息、删除管理员信息; (2)系统操作日志、删除日志记录、导出excel日志文件。 (3)短信发送记录。(4)短信回复记录。

    C#ASP.NET图书商城电子商务网站源码数据库 SQL2008源码类型 WebForm

    ASP.NET图书商城电子商务网站源码 一、源码特点 1、图书商城电子商务网站源码采用三层架构开发,购物车功能,主要参考了petshop的设计架构、使用了 Asp.net2.0中很多MemberShip、master等新功能。 2、采用三层架构开发,购物车功能,主要参考了petshop的设计架构、使用了Asp.net2.0中很多MemberShip、master等新功能。 二、功能介绍 1、前台集成了产品在线展示,用户注册、在线调查、在线投稿 2、后台有类别管理\图书管理\订单管理\会员管理\配送范围管理\邮件列表\广告管理\友情链接管理等 3、后台添加图书时自动生成缩略图和文字水印

    keil5工程-stm32f103rct6

    keil5工程-stm32f103rct6

    java版ssm企业工资管理系统源码数据库 MySQL源码类型 WebForm

    Java版ssm企业工资管理系统源码 运行环境:jdk 1.8 项目技术:jsp+mysql+Spring+mybatis 运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以 IDE环境:Eclipse,IDEA都可以 tomcat环境:tomcat9.0 硬件环境:windows7/8/10 1G内存以上 主要功能说明:管理员角色包含一下功能:管理员登录,员工管理,部门管理,岗位管理,职称管理 工龄奖金管理,工资项管理,考勤管理,工资查询,统计图表等功能。 员工角色包含:员工登录,个人信息管理,考勤管理,工资详情等功能。

    java医院人事管理系统源码数据库 MySQL源码类型 WebForm

    Java医院人事管理系统源码 项目描述: java web医院HR后台管理系统(增加shiro) 运行环境:jdk7+tomcat7+mysql+MyEclipse+maven 使用技术:spring+spring mvc+mybatis+bootstrap+jquery+jsp+shiro

    基于百度飞桨PaddleOCR的C++代码修改并封装的.NET的OCR工具本地类库,可离线使用 包含文本识别、文本检测、表格识别

    PaddleOCRSharp是一个基于百度飞桨PaddleOCR的C++代码修改并封装的.NET的OCR工具本地类库,可离线使用。包含文本识别、文本检测、表格识别功能。本项目针对小图识别不准的情况下做了优化,比飞桨原代码识别准确率有所提高。 包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测。

    基于Transformer的鲁棒性激光雷达-相机融合3D物体检测框架

    内容概要:本文提出了TransFusion,一种利用变压器解码器层实现鲁棒性的激光雷达-相机融合3D物体检测方法。通过软关联机制,TransFusion能够在低质量图像条件和传感器未对准时保持性能,并实现了目前最好的3D检测效果,特别是在nuScenes和Waymo数据集上取得了显著成绩。 适合人群:从事自动驾驶领域的研究人员和技术开发者,尤其是关注多模态传感器融合和3D物体检测的研究者。 使用场景及目标:适用于需要高性能和高鲁棒性的自动驾驶系统,特别是需要从激光雷达和摄像头数据中高效提取3D物体信息的场景。主要目标是在恶劣环境条件下(如夜间、光照不足)依然能够稳定地进行3D物体检测。 其他说明:文中详细介绍了模型的设计思路,包括特征提取、查询初始化、注意力机制和融合模块等多个方面的创新点。同时,实验部分展示了在多个大规模数据集上的优异表现,验证了方法的有效性和泛化能力。

    Java基于springboot+vue的二手物品交易系统的设计与实现.rar

    【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末大作业 包含:项目源码、数据库脚本、开发说明文档、部署视频、代码讲解视频、全套软件等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 环境说明: 开发语言:Java 框架:springboot,mybatis JDK版本:JDK1.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:eclipse/idea Maven包:Maven3.3

    基于SpringBoot+Vue的宿舍管理系统(前端代码)

    基于SpringBoot+Vue的宿舍管理系统(前端代码)

Global site tag (gtag.js) - Google Analytics