自定义验证类(客户端和服务器端同时验证,支持Ajax验证)[开源]


======================================================
注:本文源代码点此下载
======================================================

最近在做一个小型项目,用到一个用户注册,由于安全考虑,要求客户端和服务器端同时验证,我在项目中用的是微软的验证控件,在使用的过程中发现真是很麻烦,在页面中拖了十几个验证控件不说,因为验证的时候验证失败时自定义显示一些错误信息,做起来相当麻烦,有些小的改动找个代码都不方便,最关键的是无法重复使用,所以想自己做一个验证的控件,本来想做自定义控件,后来发现由于验证方面定义的部分比较多,最后选择使用类库。通过页面调用类来实现控件的验证,好了,废话就不多说了,下面请大家一下,初次开源,请大家多多指教。

先请大家看看页面调用的代码。

页面调用

using system;

using system.collections;

using system.configuration;

using system.data;

using system.web;

using system.web.security;

using system.web.ui;

using system.web.ui.webcontrols;

using system.web.ui.webcontrols.webparts;

using system.web.ui.htmlcontrols;

namespace demo

{

public partial class webform1 : system.web.ui.page

{

koodoo.validation.formvalidate fv;

protected void page_load(object sender, eventargs e)

{

fv = new koodoo.validation.formvalidate(this, "button1", true);

fv.valiajaxemail("useremail", "请输入正确格式的email", "您输入的邮箱已存在", "checkemail.aspx", "key");

fv.valinormalnumber("textbox1", "请输入数字,长度为2-6", false, 2, 6);

fv.valicompare("textbox2", "上一个数字不相等", "textbox1");

fv.valicheckbox("checkboxlist1", "请至少选择两个", 2);

fv.valiradio("radiobuttonlist1", "请选择");

fv.valiselect("dropdownlist1", "请选择", "请选择");

fv.display();

}

protected void button1_click(object sender, eventargs e)

{

if (fv.submit_server())

{

response.write("验证通过");

}

else

{

response.write("验证未通过");

}

}

}

}

实例化1->参数1:当前页面,参数2:提交的按钮,参数3:是否是开发阶段(当处于开发阶段时,每次都会生成js代码放到网站的js文件夹下,如处于运行阶段,就设为false)

fv = new koodoo.validation.formvalidate(this, "button1", true);

实例化2->参数1:当前页面,参数2:提交的按钮,参数3:显示错误信息方式(1:每一下控件都有对就的label显示错误,2:在一个指定的label上显示所有错误信息,3:在一个指定label上显示一条错误信息)参数4:显示错误信息的指定label,参数3为2和3时有效,参数5:是否是开发阶段

fv = new koodoo.validation.formvalidate(this, "buttin1", 1, "errmsg", true);

在使用后,调用display()向页面加入js代码。

在服务器端验证调用submit_server(),如果返回true则验证通过。

当使用验证报错时,可以自定义js脚本可以用于显示页面一些自定义的报错样式

如我这里面用到的: (注:报错方式为 1 时,对就的显示错误label的id为,被验证控件加“_err”,如果前面加必填*时,则加"_x",说的不太清楚,大家看源码吧)

var showerr = function(id)

{

$("#"+id).attr("style","border:1px #ff0000 solid;");

$("#"+id+"_err").attr("style","color:red");

$("#"+id+"_x").attr("style","color:red");

}

var hideerr = function(id){

$("#"+id).attr("style","");

$("#"+id+"_err").attr("style","");

$("#"+id+"_x").attr("style","");

}

更多的内容,大家看一下源码吧

源码已更新 源码下载

第一次发到首页,等待大家拍砖。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值