jQuery 实现bootstrapValidator下的全局验证

  前置:

  引入jQuery、bootstrap、bootstrapValidator

  问题描述:

  项目中要求所有的表单输入框中都不能输入&符号。没有在bootstrap中找到有方法可用,只能自己动手了

  思路:

  使用正则。

  分两种情况,第一种,如果输入框有自身的正则验证则不用去管(一般来说使用正则验证是严格控制输入的);第二种,如果没有正则则需要添加不能输入&的正则。

  需要重载bootstrapValidator初始化函数,根据上面的两种情况修正初始化的设置项。最后要恢复原来的bootstrapValidator函数(这一步是必须的,原来的bootstrapValidator函数有自己的一大堆关联的东东,不能丢失);

  实现:

/*add chenhua 2015.10.16 重写bootstrapValidator方法?给每一个验证项都添加禁止输入"&"符号*/
$(function(){  //保存原始的bootstrapValidator
  var overwrite = $.fn.bootstrapValidator;   //重载bootstrapValidator
  $.fn.bootstrapValidator = function(options){
    //恢复原来的bootstrapValidator,因为其加了很多数据是不能丢失的
    $.fn.bootstrapValidator = overwrite;
                    //这里有两种做法,第一种是直接修改arguments内容,使其包含不能输入&的验证,然后调用即可;    //第二种是先使用arguments来初始化,然后使用调用bootstrapValidator的函数来给非正则表达式验证的项添加不能输入&的验证    //这里我们使用了第二中。  
    var validtor = overwrite.apply(this,arguments);
    if($.type(arguments[0]) == "object"){
      var vtor = this.data("bootstrapValidator"),      //过滤出输入框表单项  
      fileds = this.find("input[name][type=‘hidden‘],input[name][type=‘password‘],input[name][type=‘text‘],textarea[name]").not(":disabled,[type=‘hidden‘]");
      fileds.each(function(){
        //本身没有正则验证才添加不能输入&的验证
        if(!vtor.getOptions($(this).attr(‘name‘),‘regexp‘,‘regexp‘)){
                vtor.addField($(this).attr(‘name‘),
            {
              validators: {
                regexp: {
                  regexp: /^[^&]*$/,
                  message: "不能包含&字符"
                }
              }
          })
        }
      })
    }
    return validtor;
  }
})

  

时间: 2024-11-16 03:32:55

jQuery 实现bootstrapValidator下的全局验证的相关文章

jQuery html5Validate基于HTML5表单验证插件

一.前言 前3篇文章实际都是为本文做铺垫的,如果以下棋表示,前三篇是普通走棋,本篇是将军! 目前市面上有不少表单验证插件,看似强大,实在糟糕! 总结下,有以下一些问题: 过多干预包括:改变了表单元素UI, 为表单元素绑定过多事件等 布局等限制包括:需要特定结构的布局,需要特定的类名或者ID 学习成本包括:N多元作者自定义的属性,或者自定义的特定的数据结构 可用性 当JS出现错误的时候而无法正常运作的时候,验证就是聋子的耳朵——摆设,即使在现代浏览器下也是如此. 面向未来的表单验证 验证驱动验证信

jQuery Validate (登录页面相关验证)

$(function() { var submit = false; var superHtml = []; /** * 匹配企业帐号,以字母开头,长度在6-20之间,只能包含字符.数字和下划线. */// jQuery.validator.addMethod("userNameIsFormart", function(value, element) {// return this.optional(element) || /^[a-zA-Z]\w{5,19}$/.test(value

PSPnet:Pyramid Scene Parsing Network——作者认为现有模型由于没有引入足够的上下文信息及不同感受野下的全局信息而存在分割出现错误的情景,于是,提出了使用global-scence-level的信息的pspnet

from:https://blog.csdn.net/bea_tree/article/details/56678560 2017年02月23日 19:28:25 阅读数:6094 首先声明,文末彩蛋,不是笔者提问的 1 一句话总结 作者认为现有模型由于没有引入足够的上下文信息及不同感受野下的全局信息而存在分割出现错误的情景,于是,提出了使用global-scence-level的信息的pspnet,另外本文提出了引入辅助loss的ResNet优化方法. 2 网络结构 本文提出的网络结构简单来说

jquery实现上传图片及图片大小验证、图片预览效果代码

jquery实现上传图片及图片大小验证.图片预览效果代码 上传图片验证 */ function submit_upload_picture(){     var file = $('file_c').value;     if(!/.(gif|jpg|jpeg|png|gif|jpg|png)$/.test(file)){            alert("图片类型必须是.gif,jpeg,jpg,png中的一种")        }else{      $('both_form')

jQuery之双下拉框

双下拉框要实现的效果,实际上就是左边下拉选择框里的内容,可以添加到右边,而右边同理.写了个简单的例子,来说明一下. 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 <!DOCTYPEhtml> <html> <head> <title>jq

jQuery超酷下拉插件6种效果演示

原始的下拉框很丑啦, 给大家一款jQuery超酷下拉插件6种效果 效果预览 下载地址 实例代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <div class="container">                       <section class="main clearfix">                 <select id="cd-dr

Jquery Easyui框架中常用的验证

对于validatebox空间,验证其输入字符长度的最大值是否超出数据库中设置的字段长度.方法如下: 1 /** 2 * 验证输入字符长度 3 */ 4 $.extend($.fn.validatebox.defaults.rules, { 5 maxLength: { 6 validator: function(value, param){ 7 if(value.length >= param[0]) { 8 // showMsg("输入信息长度不能超过"+ param[0]

JQuery设置获取下拉菜单选项的值 多实例

分享下JQuery如何设置获取下拉菜单某个选项的值,多种方法,值得收藏. JQuery获取和设置Select选项 获取Select :获取select 选中的 text :$(“#ddlRegType”).find(“option:selected”).text();获取select选中的 value:$(“#ddlRegType “).val();获取select选中的索引:$(“#ddlRegType “).get(0).selectedIndex;设置select:设置select 选中的

JavaScript之jQuery-9 jQuery 开发插件(添加新全局函数、添加jQuery对象方法、添加新简写方法、方法参数)

一.添加新的全局函数 全局函数 - 全局函数,实际上就是jQuery对象的方法,从实践角度看,它们是位于jQuery命名空间内部的函数 - jQuery内置的某些功能是通过全局函数实现的 - $.ajax()函数就是典型的全局函数 - 向jQuery命名空间添加一个函数,只需要将这个新函数指定为jQuery的一个属性值   - 如果要使用该全局函数时,可通过一下代码调用 - 也可以通过别名来调用 添加多个函数 - 如果我们想在插件中提供多个全局函数,可以独立的声明这些函数   - 还可以使用$.