/*

  • 新版的页面控件值验证

  • @element 要验证的范围对象

  • @isValiMust 是否需要验证必填(临时保存的时候就不需要验证必填)

  • @isByName 是否依赖name寻找控件

  • @return 验证结果字符串(空为验证通过,非空表示验证不通过,返回的警告信息)

    */

    function ValidatePageControlsNew(element, isValiMust, isByName) {

    if (typeof isValiMust === 'undefined') {

    isValiMust = true;

    }

    if (typeof isByName === 'undefined') {

    isByName = false;

    }

    var warn = "";

    var isMust = undefined;

    var $label = null;

    var target;

    $(element).find('input,select,textarea').each(function (r) {

    if (isByName) {//依赖name寻找控件

    target = $(this).attr('name');

    } else {

    target = $(this).attr('id');

    }

    if (target != undefined) {

    //判断是否是必填

    if (isValiMust) {

    isMust = $(this).attr("isMust");//不需要验证的属性

    if (isMust) {

    var value = $(this).val();

    if (value == '') {

    warn = $(this).attr("placeholder");

    return false;

    }

    }

    }

         //判断格式
    var format = $(this).attr("fromat");
    var fromatwarning = $(this).attr("fromatwarning");
    var value = $(this).val();
    if (format != undefined && value != "") {//值不能为空,为空就不需要验证
    switch (format) {
    case "PositiveInt"://正整数 验证自己加 验证什么自己可以提前写好条用OK了
    if (!isPositiveInteger(value)) {
    warn = fromatwarning;
    return false;
    }
    break;
    case "NonnInt"://非负整数(包含0)
    if (!isNumber(value)) {
    warn = fromatwarning;
    return false;
    }
    break;
    case "Tel"://电话(座机或手机)
    if (!checkTel(value)) {
    warn = fromatwarning;
    return false;
    }
    break;
    case "Mobile"://手机
    if (!isMobile(value)) {
    warn = fromatwarning;
    return false;
    }
    break;
    case "Percentage"://百分比
    if (!isPosIntegerBetween100(value)) {
    warn = fromatwarning;
    return false;
    }
    break;
    case "Money"://金额(允许两位小数)
    if (!isDecimalMoney(value)) {
    warn = fromatwarning;
    return false;
    }
    break;
    case "ZipCode"://邮编
    if (!isZipCode(value)) {
    warn = fromatwarning;
    return false;
    }
    break;
    case "IDCard"://18位身份证
    if (!checkCard(value)) {
    warn = fromatwarning;
    return false;
    }
    break;
    default:
    break
    }
    } }

    });

    return warn;

    }

var warnText = ValidatePageControlsNew($("#form"), true, true);//几个参数 自己看方法有介绍 反回结果为空的话 说明验证非空通过

input type="text" name="ZSBZ" id="ZSBZ" class="form-control" ismust="true" fromat="Money" fromatwarning="请输入正确的住宿费格式" placeholder="请输入住宿费安排标准" value="" //placeholder 为空返回的内容 ismust 是否进行为空验证 fromat="Money" 这个就是对数据格式的验证了 看上面的方法 有说明 fromatwarning 数据格式验证不通过的返回值

很方便简洁的from 表单验证

from 验证的更多相关文章

  1. 【探索】无形验证码 —— PoW 算力验证

    先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...

  2. C# 中参数验证方式的演变

    一般在写方法的时候,第一步就是进行参数验证,这也体现了编码者的细心和缜密,但是在很多时候这个过程很枯燥和乏味,比如在拿到一个API设计文档的时候,通常会规定类型参数是否允许为空,如果是字符可能有长度限 ...

  3. Yii1.1的验证规则

    在Yii1.1的数据验证是由CValidator完成,在CValidator中提供了各种基本的验证规则 <?php public static $builtInValidators=array( ...

  4. 【WCF】使用“用户名/密码”验证的合理方法

    我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...

  5. PHP验证用户登录例子-学习笔记

    1.基本流程: 2.UML类图: 3.PHP代码: 3.1 index.php <?php /** * Created by PhpStorm. * User: andy * Date: 16- ...

  6. 客户端的验证插件validator

    简单,智能,令人愉悦的表单验证~~~ 官方文档:http://www.niceue.com/validator/ <!DOCTYPE html> <html> <head ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(66)-MVC WebApi 用户验证 (2)

    系列目录 前言: 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手. 继续上一篇的文章,我们接下来演示利用拿到的Token来访 ...

  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)

    系列目录 前言: WebAPI主要开放数据给手机APP,其他需要得知数据的系统,或者软件应用,所以移动端与系统的数据源往往是相通的. Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能, ...

  9. 再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入

    说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析 ...

  10. jQuery学习之路(8)- 表单验证插件-Validation

    ▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...

随机推荐

  1. servlet初始化参数

    使用<context-param>标签初始化的参数是被应用程序中所有的servlet所共享.但是有时候我们需要为某一个特定的servlet配置参数,这个时候我们就需要使用servlet初始 ...

  2. 理解多线程管理类 CWorkQueue

    有些人会觉得多线程无非是,有多少任务就启动多少线程,CreadThread,执行完了自己结束就释放资源了,其实不然.多线程是需要管理的,线程的启动.执行.等待和结束都需要管理,线程间如何通信,如何共享 ...

  3. SVN 与Eclipse 关联 || 安装beyond 插件

    1.让本地svn代码与库建立联系   右击项目名称,Team -  share project 2.本地svn版本一般与Eaclipse svn插件 版本一致!http://subclipse.tig ...

  4. Android ---------高德卫星地图绘制多个点和点的点击事件自定义弹窗

    最近开发中,遇到一个多个点绘制,并实现点击事件,出现自定义窗口显示相关信息等功能,所以写了这篇博客. 从后台请求数据,得到多个经纬度,然后绘制在地图上,并实现点击,出现相关信息(自定义弹框实现) 先来 ...

  5. 第三天 RHEL7-Unix/Linux系统 介绍

    如何称为一名优秀的linux运维人员? 如果你有机会和条件:环境能够磨练一个人的能力和意志. 大胆的做你从未做过的项目,每一个项目都是对自身的极大提升. 有好的环境资源不要浪费,好好把握,慢慢进步. ...

  6. 十四 web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码

    打码接口文件 # -*- coding: cp936 -*- import sys import os from ctypes import * # 下载接口放目录 http://www.yundam ...

  7. Day10 - Python异步IO、Pymysql、paramiko、

    IO多路复用: 参考博客:http://www.cnblogs.com/wupeiqi/p/6536518.html   socket客户端(爬虫): http://www.cnblogs.com/w ...

  8. Ansible 小手册系列 五(inventory 主机清单)

    Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansible/hosts 主机清单示例 mail.example. ...

  9. 伪共享(False Sharing)和缓存行(Cache Line)

    转载:https://www.jianshu.com/p/a9b1d32403ea https://www.toutiao.com/a6644375612146319886/ 前言 在上篇介绍Long ...

  10. $.ajaxComplete()

    https://www.cnblogs.com/RachelChen/p/5433881.html 全局ajax事件   必须当页面上存在任何ajax请求的时候都将触发这些特定的全局ajax处理函数. ...