文档章节

修改jquery.validate.js的验证规则

bigYuan
 bigYuan
发布于 2014/06/04 14:17
字数 370
阅读 71
收藏 0

jquery.validate.js默认验证的是元素的name.

例如:<input name="username" id="username" size="25" />

------------------------------------------------------------------------------------

我们可以通过修改jquery.validate.js让他验证元素的id.

我们把jquery.validate.js中的element.name,全部都替换成element.id就可以了,注意要完全匹配element.name别把其他的也替换了产生错误。

------------------------------------------------------------------------------------

以下方法中也要替换:

onclick: function( element, event ) {

// click on selects, radiobuttons and checkboxes

if ( element.id in this.submitted ) {

this.element(element);

}

// or option elements, check parent select in that case

else if ( element.parentNode.name in this.submitted ) {

this.element(element.parentNode);

}

},

findLastActive: function() {

var lastActive = this.lastActive;

return lastActive && $.grep(this.errorList, function( n ) {

return n.element.id === lastActive.name;

}).length === 1 && lastActive;

},

findByName: function( name ) {

return $(this.currentForm).find("[name='" + name + "']");

},

elements: function() {

var validator = this,

rulesCache = {};


// select all valid inputs inside the form (no submit or reset buttons)

return $(this.currentForm)

.find("input, select, textarea")

.not(":submit, :reset, :image, [disabled]")

.not( this.settings.ignore )

.filter(function() {

if ( !this.name && validator.settings.debug && window.console ) {

console.error( "%o has no name assigned", this);

}


// select only the first element for each name, and only those with rules specified

if ( this.name in rulesCache || !validator.objectLength($(this).rules()) ) {

return false;

}


rulesCache[this.id] = true;

return true;

});

},

修改后

onclick: function( element, event ) {

// click on selects, radiobuttons and checkboxes

if ( element.id in this.submitted ) {

this.element(element);

}

// or option elements, check parent select in that case

else if ( element.parentNode.id in this.submitted ) {

this.element(element.parentNode);

}

},

findByName: function( name ) {

return $(this.currentForm).find("[id='" + name + "']");

},

findLastActive: function() {

var lastActive = this.lastActive;

return lastActive && $.grep(this.errorList, function( n ) {

return n.element.id === lastActive.id;

}).length === 1 && lastActive;

},

elements: function() {

var validator = this,

rulesCache = {};


// select all valid inputs inside the form (no submit or reset buttons)

return $(this.currentForm)

.find("input, select, textarea")

.not(":submit, :reset, :image, [disabled]")

.not( this.settings.ignore )

.filter(function() {

if ( !this.id && validator.settings.debug && window.console ) {

console.error( "%o has no name assigned", this);

}


// select only the first element for each name, and only those with rules specified

if ( this.id in rulesCache || !validator.objectLength($(this).rules()) ) {

return false;

}


rulesCache[this.id] = true;

return true;

});

},

------------------------------------------------------------------------------------

插件地址:

http://jqueryvalidation.org/

以上使用的是jQuery Validation Plugin 1.11.1

© 著作权归作者所有

共有 人打赏支持
bigYuan
粉丝 16
博文 135
码字总数 43172
作品 0
大连
程序员
私信 提问
jQuery验证使用

首先要加载jquery.js与jquery.validate.js两个文件。 然后可以写验证规则,与错误提示语,也可以写自定义的验证函数。 这里的验证一般针对于html表单中的各种控件。根据它们的名字进行验证。...

桃子红了呐
2017/06/27
0
0
jQuery validate插件初探

jQuery的validate插件,在jQuery验证时使用非常方便。 具体使用步骤: 1.引入文件 既然是jQuery插件,必须要有jQuery作为支持jquery-1.3.2.min.js 然后是验证的核心文件jquery.validate.js ...

桃子红了呐
2017/07/07
0
0
Jquery Validate 取消校验

私活真的是不好接呀,动不动就来个奇怪的功能,在页面加入了Jquery Validate完整性校验后,居然提出填写该页面一半时也可以进行保存操作,这就违反了校验规则,然而Jquery Validate是没有办法...

华山猛男
01/14
0
0
jquery validator之动态增加/删除验证规则

jquery validator之动态增加/删除验证规则 $('#id').rules('add',{ required: true, rangelength: [2,10], messages:{ required: '请填写内容', rangelength: '字数在{0}-{1}字以内' } }); U......

柒月-小妖精
2013/11/23
7K
2
jQuery表单验证插件--Validation

jquery.validate.js 是一款执行表单输入信息验证的jQuery插件。要求 jQuery 1.2.6+, compatible with 1.3.x 特点: 安装简单 内置超过20种数据验证方法 直列错误提示信息 可扩展的数据验证方...

匿名
2008/09/19
25.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
5分钟前
0
0
用心行走——《做最好的新教师》读后感3200字

用心行走——《做最好的新教师》读后感3200字: 作者:何英。我是一名新教师,踏上工作岗位之初,我感觉自己像一个大陀螺,不停的在原地旋转旋转,却找不到方向。这种感觉让我一度怀疑,这还...

原创小博客
16分钟前
0
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
33分钟前
1
0
HashTable和Vector为什么逐渐被废弃

HashTable,不允许键值为null,还一个就是put方法使用sychronized方法进行线程同步,单线程无需同步,多线程可用concurren包的类型。 如编程思想里面说的作为工具类,封闭性做的不好没有一个...

noob_chr
昨天
0
0
Win10 下安装Win7双系统

很多人买了预装64位Win8/8.1的电脑后想重装(或者再安装一个)Win7系统,但是折腾半天发现以前的方法根本不奏效。这是因为预装Win8/8.1的电脑统一采用了UEFI+GPT引导模式,传统的BIOS(Legacy...

yaly
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部