如何让easyui的validatebox 取消验证初始化的时候不验证

&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&求教一个jquery-easyui中验证控件validatebox的问题
[问题点数:40分,结帖人cejay]
求教一个jquery-easyui中验证控件validatebox的问题
[问题点数:40分,结帖人cejay]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。1.当text发生变化时在校验:
&&&&&&Easyui validatebox个人感觉还是比较好用的,但是发现他不是只有text改变并离开编辑框的时候才验证,而是不停的做验证;如果是js脚本的本地验证还好,如果是远程验证(如:调用数据库检测信息是否已存在)那就不停的向服务器发送请求,这就比较麻烦啦;通过查看Easyui validatebox的js脚本文件,发现Easyui validatebox尽然是在编辑框获得焦点之后,启用了定时器来不停的做校验的,郁闷!源码如下:
1 box.unbind(".validatebox").bind("focus.validatebox",function(){
2 _2e9.validating=true;
3 (function(){
4 if(_2e9.validating){
5 _2ee(_2e8);
6 setTimeout(arguments.callee,200);
找到问题,那就修改,将上面的代码替换成下面的代码,保证只在获取焦点并且值为空或者值发生改变时进行校验;
box.unbind(".validatebox").bind("focus.validatebox", function() {
if (box.val().length == 0) {
_2e9.validating = true;
if (_2e9.validating) {
_2ee(_2e8);
}).bind("change.validatebox", function() {
_2e9.validating = true;
if (_2e9.validating) {
_2ee(_2e8);
2.取消校验:
&&&&&& 当把包含Easyui validatebox的div转换成dialog显示时,如果本次的校验未通过,然后取消了本次操作,那么本次的校验会保留,如果在打开dialog重新赋空值或正确的值,但是还是显示验证未通过,给用户造成错觉,但是Easyui validatebox并不提供取消校验的方法,查看源码发现可以通过如下方式取消验证不通过的标识(那个红色感叹号和错误消息),为了更好的控制,这条语句的设计是一次取消一个validatebox的验证标识(elemId为validatebox的id)
$("#" + elemId).removeClass('validatebox-invalid');
3.扩展自定义验证:
&&&&&&&&&&& Easyui validatebox提供了验证方式的扩展,但是如果一次扩展一条的话,没新增有一种就需要该一次js文件,比较麻烦,我做了一个正则表达式效验,这样使用时只需要在相应的Easyui validatebox的aspx页面的定义是加入效验的侦测表达式即可,源码如下:
$.extend($.fn.validatebox.defaults.rules, {
custom_reg: {
validator: function(value, param) {
var m_reg = new RegExp(param[0]); &span style="color:#ff0000;"&//传递过来的正则字符串中的"\"必须是"\\"
if (!m_reg.test(value)) {
$.fn.validatebox.defaults.rules.custom_reg.message = param[1];
return false;
return true;
message: ''
使用方式如下:(两个参数,第一个是正则表达式,第二个是错误提示信息)
1 &pre class="html" name="code"&&input id="txt_CustPhone" class="easyui-validatebox txt-number" &span style="color:#ff0000;"&validType="custom_reg['^1\d{10}&/span&&span style="color:#ff0000;"&,'手机号码必须是11位数字!']" missingMessage="请输入客户电话!"&/span& style="width:150px" required="true"/&&/pre&
2 &pre&&/pre&
3 &p&下面这个是远程效验(&span style="color:#ff0000"&这块使用的是同步模式,使用异步会在服务器返回值之前返回校验的结果值);&/span&&/p&
4 &pre class="javascript" name="code"&$.extend($.fn.validatebox.defaults.rules, {
custom_remote: {
validator: function(value, param) {
var postdata = {};
postdata[param[1]] =
var m_result =$.ajax({ type: "POST",//http请求方式
url: param[0],
//服务器段url地址
data:postdata,
//发送给服务器段的数据
dataType: "type", //告诉JQuery返回的数据格式
async: false
}).responseT
if (m_result == "False") {
$.fn.validatebox.defaults.rules.custom_remote.message = param[2];
return false;
return true;
message: ''
25 &p&&&/p&
26 &p&用方式如下:(三个参数,第一个是调用的url,第二个是传递给服务器的参数名称,第三个是错误提示信息) &/p&
27 &pre class="html" name="code"&&input id="txt_cardid" &span style="color:#ff0000;"&class="easyui-validatebox txt-number" required="true" missingMessage="请输入卡号!"
validType="custom_remote['member.ashx?method=check_cardid','cardid','输入的卡号已使用!']" &/span&style="width:150px"/&&/pre&
29 &p&以下是前两个的结合,先用正则表达式本地验证,通过后在发送服务器验证;&/p&
30 &pre class="javascript" name="code"& $.extend($.fn.validatebox.defaults.rules, {
Composite_validation:
validator: function(value, param) {
var m_reg = new RegExp(param[0]); //传递过来的正则字符串中的"\"必须是"\\"
if (!m_reg.test(value)) {
$.fn.validatebox.posite_validation.message = param[1];
return false;
var postdata = {};
postdata[param[3]] =
var result = $.ajax({
url: param[2],
data: postdata,
async: false,
type: "post"
}).responseT
if (result == "False") {
$.fn.validatebox.posite_validation.message = param[4];
return false;
return true;
message: ''
60 &p&用方式如下:(五个参数,第一个是正则表达式,第二个是错误提示信息,第三个是调用的url,第四个是传递给服务器的参数名称,第五个是错误提示信息)&/p&
61 &pre class="html" name="code"&id="txt_CustIdentity" class="easyui-validatebox txt-number" style="width:150px"
62 &span style="color:#ff0000;"&validType="Composite_validation['^\\d{14}(\\d{1}|\\d{4}|\\d{3}x),'身份证号码为15或18位数字!','member.ashx?method=check_Identityid','Identityid','该身份证号已办卡!']" missingMessage="请输入身份证号码!" &/span&required="true" /&&/pre&
63 &pre&&/pre&
64 &p&&span style="font-size:24px"&&strong&&/strong&&/span&&&/p&
65 &p&&span style="font-size:24px"&&strong&备注:本人水平有限,如有错误,欢迎大家拍砖及留言指正&/strong& &/span&
使用方式如下:(两个参数,第一个是正则表达式,第二个是错误提示信息)
阅读(...) 评论()}

我要回帖

更多关于 easyui的validatebox 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信