`
txf2004
  • 浏览: 7041991 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jQuery的表单验证插件

阅读更多
<!-- google_ad_client = "pub-4490194096475053"; /* 内容页,300x250,第一屏 */ google_ad_slot = "3685991503"; google_ad_width = 300; google_ad_height = 250; // -->

在页面加载完成之后使用下面语句绑定
$("#test1").FV({

group : "1",

msg : "用户名只能为字母,长度为6-10位",

empty : true,

valid : [ {T:"I",P:{min:6,max:10}},

{T:"R",P:"^[A-Za-z]+$"}

]

});

group: 表示分组,可以省略.

可以简写为 G

msg: 表示错误提示信息,可以省略,默认为””

可以简写为 M

empty: 表示可否为空,可以省略,默认为false

可以简写为 E

valid : 表示要执行的验证方式,可以为了一个对象,如果要执行多种方式的验证,则为一个数组对象。

可以简写为 V



valid 介绍

验证方式有四种

“I”输入验证

{T:"I",P:{T:"N",min:1,max:120}}

T 表示验证类型

P 表示验证的参数

T 表示验证的方式数字范围或字符串长度验证(N/S) ,可以省略,默认为”S” 字符串长度验证

min 默认为0

max 默认为1000

“C”相等验证

{T:"C",P:"password1"}

P 表单控件的ID

“R”正则表达式验证

{T:"R",P:{R: "^[A-Za-z]+$",I:flase}}

{T:"R",P:"^[A-Za-z]+$"}

R 一个正则表达式,使用(””)双引号括起来。

I 表示是否区分大小写,默认为 flase

第一种方式与第二种方式功能一样。

“F”自字义函数验证

{T:"F",P:isDate}

P 函数的名称,函数接收的第一个参数为当前input的值

原码:



Code
/*
基于jQuery的表单验证插件
author : Snryang
Date : 2008-10-24 10:28:00
blog : http://snryang.cnblogs.com
*/


jQuery.formValidator = {
ids:[],
init: function (o){
if (!o) return ;
return this.each(
function (){
var el = this;
var jel = jQuery(this);
this.fvCfg = {
jel: jel,
imgId: el.id + "error",
group: (o.group || o.G) ? o.group : "",
msg: o.msg || o.M || "",
empty: o.empty || o.E || false,
V: o.V || o.valid || null
};
jel.after("<img src='reg3.gif' id='"+el.fvCfg.imgId+"' title='"+el.fvCfg.msg+"' style='display:none'/>");
jel.bind('blur', jQuery.formValidator.start);
jQuery.formValidator.ids.push(el);
}
);
},
start: function(){
if(this.fvCfg.V == null) return;
var flag = true;
if(this.fvCfg.V.constructor == Object){
this.fvCfg.P = this.fvCfg.V.P;
flag = eval("jQuery.formValidator." + this.fvCfg.V.T + ".apply(this)");
}
else if(this.fvCfg.V.constructor == Array){
for(var i in this.fvCfg.V){
this.fvCfg.P = this.fvCfg.V[i].P
flag = eval("jQuery.formValidator." + this.fvCfg.V[i].T + ".apply(this)");
if (!flag) break;
}
}
flag = !flag ? (this.fvCfg.empty ? (this.fvCfg.jel.val() == "" ? true : false) :false ) : true;
flag ? jQuery("#" + this.fvCfg.imgId).hide() : jQuery("#" + this.fvCfg.imgId).show();
return flag;
},
I: function(){
var P = this.fvCfg.P;
var T = P.type || P.T || "S";
var min = P.min || 0;
var max = P.max || 1000;
var value = this.fvCfg.jel.val();
if(T.toUpperCase() == "N") {
if( this.fvCfg.msg == "" ) jQuery("#" + this.fvCfg.imgId).attr("title","数字应当大于等于[ "+min+" ]并且小于等于[ "+max+" ]");
return (Number(value) >= min && Number(value) <= max) ? true : false;
}
else {
if( this.fvCfg.msg == "" ) jQuery("#" + this.fvCfg.imgId).attr("title","字符串长度应当大于等于[ "+min+" ]并且小于等于[ "+max+" ]");
return (value.length >= min && value.length <= max) ? true : false;
}
},
C: function(){
var id = this.fvCfg.P;
var value = this.fvCfg.jel.val();
return jQuery("#" + id).val() == value ? true : false;
},
R: function(){
var P = this.fvCfg.P;
var regexp = (P.constructor != Object) ? P : P.regexp || P.R;
var I = P.I || false;
var value = this.fvCfg.jel.val();
var re = I ? new RegExp(regexp) : new RegExp(regexp,"i") ;
return re.test(value);
},
F: function(){
return (this.fvCfg.P.constructor == Function) ? this.fvCfg.P.apply(this,[this.fvCfg.jel.val()]) : false;
},
PageIsValid: function(group){
var valid = true;
var G = group || "";
var flag;
jQuery.each(jQuery.formValidator.ids,function(i,e){
if(G == e.fvCfg.group || G =="") {
flag = jQuery.formValidator.start.apply(e);
if(!flag) valid = false;
}
});
return valid;
}
};

jQuery.fn.extend(
{
FV : jQuery.formValidator.init,
PageIsValid : jQuery.formValidator.PageIsValid
}
);






测试html



Code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<script src="jquery-1.2.3-intellisense.js" type="text/javascript"></script>
<script src="Snryang.js" type="text/javascript"></script>
<script type="text/javascript">

$(document).ready(function(){
$("#test1").FV({
group : "1",
M : "用户名只能为字母,长度为6-10位",
V : [ {T:"I",P:{min:6,max:10}},
{T:"R",P:"^[A-Za-z]+$"}
]
});

$("#password1").FV({
V : {T:"I",P:{min:6,max:10}}
});

$("#password2").FV({
msg : "重复密码长度为6-10位,只能为字母,必须与密码一致",
V : [ {T:"I",P:{min:6,max:10}},
{T:"C",P:"password1"},
{T:"R",P: regexEnum.letter}
]
});

$("#nl").FV({
V : {T:"I",P:{T:"N",min:1,max:120}}
});

$("#csny").FV({
G : "1",
M : "出生日期格式:yyyy-MM-dd",
E : true,
V : {T:"F",P:isDate}
});

$("#dxzm").FV({
msg : "这只能输入大写字母,可以为空",
empty : true,
V : {T:"R",P:{R:regexEnum.letter_u,I:true}}
});
});

function pageValid(){
alert($().PageIsValid());
alert($().PageIsValid("1"));
}

function isDate(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
</script>
</head>
<body>
<table >
<tr>
<td align="right">用户名:</td>
<td><input type="text" id="test1" /></td>
</tr>
<tr>
<td align="right">密码:</td>
<td><input type="password" id="password1" /></td>
</tr>
<tr>
<td align="right">重复密码:</td>
<td><input type="password" id="password2" /></td>
</tr>
<tr>
<td align="right">你的性别:</td>
<td><input type="radio" id="sex" value="1" name="sex" />
男&nbsp;&nbsp;&nbsp;&nbsp; <input type="radio" id="sex1" value="2" name="sex" />
女</td>
</tr>
<tr>
<td align="right">你的年龄:</td>
<td><input type="text" id="nl" value="26" /></td>
</tr>
<tr>
<td align="right">出生日期:</td>
<td><input type="text" id="csny" /></td>
</tr>
<tr>
<td align="right">大写字母:</td>
<td><input type="text" id="dxzm" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="button" id="button" onclick="pageValid()" value="提交" /></td>
</tr>
</table>
</body>
</html>


打包下载:http://files.cnblogs.com/snryang/FV.rar

分享到:
评论

相关推荐

    jquery表单验证插件

    ### jQuery表单验证插件详解 #### 一、概述 jQuery表单验证插件是一种用于简化Web表单处理过程的强大工具。它不仅能够帮助开发者轻松地实现表单数据的Ajax提交,还支持文件上传等功能,极大地提升了用户体验并降低...

    jQuery表单验证插件

    **jQuery表单验证插件详解** 在Web开发中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预设的规则,从而提高用户体验并减少服务器端的负担。jQuery,一个轻量级、高性能的JavaScript库,提供了丰富的API...

    【原创】jquery表单验证插件

    本人制作的jquery表单验证插件JfomValidate 功能:可以完成绝大数页面的脚本验证效果,压缩包里有示例和调用说明。 压缩包包含文件: index.html -- 说明及示例 JfomValidate.min.js -- 插件 jquery-1.3.2.min.js -...

    jQuery表单验证插件EasyValidator 2.0带TIP提示效果

    **jQuery表单验证插件EasyValidator 2.0:打造高效且友好的用户输入体验** 在Web开发中,表单验证是不可或缺的一部分,它确保了用户提交的数据符合预期的格式和标准,从而防止无效数据的输入。jQuery作为一款广泛...

    jQuery 表单验证插件

    jQuery formValidator表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。你可以划分多个校验组,每个组的校验都是互不影响。对一个表单对象,你只需要写一行代码就可以轻松实现无数种(理论上)...

    高质量的jQuery表单验证插件 A Jquery Inline Form Validation

    **jQuery 表单验证插件概述** 在网页开发中,表单验证是不可或缺的一部分,它确保用户输入的数据符合预设的规则,提高了用户体验并减少了服务器端的负担。`A Jquery Inline Form Validation` 是一个高质量的jQuery...

Global site tag (gtag.js) - Google Analytics