随笔-18  评论-2007  文章-0  trackbacks-20

jQuery formValidator表单验证插件开源了!!含API帮助、源码、示例


升级记录


在升级的过程中发现了一些bug,在这个版本里做了修正;使用新版的jQuery类库,精简了不少代码。
1、升级的过程中,把inputvalidator函数的里的属性defaultvalue弄错了,导致默认值都失效。
现更正为如下:
a、最后一个版本属性名为defaultval,现更正为了原来的属性名defaultvalue
b、checkbox和radio以及select控件都必须用数组进行初始化,请看demo1里的几个控件的默认值。

2、ajaxvalidator是大家问的最多的问题,修正一个bug(感谢网友“じ龍峸√”),并把大家最关心的问题,再做一次阐述。
bug现象:无论校验有没有校验通过,当控件再次得到焦点而再次失去焦点的时候tip里的提示就会停滞在得到焦点的提示
历次升级的相关记录:
a、为AjaxValidator添加一个addidvalue属性(是否自动添加id和值到url参数后面)
为了修复AjaxValidator在配置信息的时候,取不到运行时候值的bug,插件将自动在url后面自动添加,形式为"id=value"的网页参数。在服务器端,你可以通过Request.querystring["id"]来取值。 具体演示请看demo1里的用户名输入和Default.aspx
b、AjaxValidator校验方式,将自动再增加一个参数到请求的地址后面"clientid=触发校验的表单ID"。
如果你是一个jQuery集合做校验,如果用到了AjaxValidator校验方式,在服务器端,你无法知道触发校验的是哪个 表单元素,所以在请求的地址后面追加"clientid=触发校验的表单ID"。

3、上次更新的过程中,压缩包里忘记放入datepicker日期控件,一起更正

 

 

 

2008/12/7 01:44:00 jQuery formValidator 3.2ver

1、为compareValidator里的datatype属性增加新的类型:date、datetime。
那么到目前为止,插件支持4种常类型:"string"、"number"、"date"、"datetime",默认值为"string"

2、为inputValidator里的属性type增加类型为date、datetime,min和max必须为string类型,会自动转换
"size":表示比较长度 ,默认值
"number":数值型比较
"string":字符型比较
"date":短日期类型
"datetime":长日期类型

3、为initConfig增加属性errorfocus,表示发生错误的时候,第一个出错控件是否获得焦点。默认获得焦点。

4、initConfig增加属性forcevalid属性;formValidator增加forcevalid属性,表示是否一直输入正确为止才允许离开焦点。
initConfig的forcevalid优先等级最高,即全局配置;而formValidator里的forcevalid是局部设置。

5、initConfig增加属性wideword,默认为false,表示是否把一个汉字当做一个长度的参数。
请见demo1最上面的按钮演示。

6、增加ajaxValidator对password控件的支持

7、修正升级中出现的一些bug,现都已修复
在升级的过程中,造成公用一个tip的功能丢失,现已修复。
bug描述:只显示第一个控件的信息,后面的控件正确与否都不理睬。


更多的升级记录,请点击这里


1、现场演示


http://www.yhuan.com/formvalidator/demo1.htm

 

2、jQuery pageValidator插件主要功能

 

  1. 支持所有类型客户端控件的校验
  2. 支持jQuery所有的选择器语法,只要控件有唯一ID和type属性
  3. 支持函数和正则表达式的扩展。提供扩展库formValidatorReg.js,你可以自由的添加、修改里面的内容。
  4. 支持2种校验模式。第一种:文字提示(showword模式);第二种:弹出窗口提示(showalert模式)
  5. 支持多个校验组。如果一个页面有多个提交按钮,分别做不同得提交,提交前要做不同的校验,所以你得用到校验组的功能。
  6. 支持4种状态的信息提示功能,可以灵活的控制4种状态是否显示。第一种:刚打开网页的时候进行提示;第二种:获得焦点的时候进行提示;第三种:失去焦点时,校验成功时候的提示;第四种:失去焦点时,校验失败的错误提示。
  7. 支持自动构建提示层。可以进行精确的定位。
  8. 支持自定义错误提示信息。
  9. 支持控件的字符长度、值范围、选择个数的控制。值范围支持数值型、字符型、日期型;选择的个数支持radio/checkbox/select三种控件
  10. 支持2个控件值的比较。目前可以比较字符串和数值型、日期型。
  11. 支持服务器端校验。
  12. 支持输入格式的校验。

 

3、jQuery formValidator插件 API帮助文档

帮助文档请点击这里 


4、下载API帮助、源码、示例


http://files.cnblogs.com/wzmaodong/formValidator3.3.rar

校验代码升级器


5、示例代码

<script type="text/javascript">
$(document).ready(function(){
 $.formValidator.initConfig({onError:function(){alert("校验没有通过,具体错误请看错误提示")}});
 $("#test1").formValidator({onshow:"请输入用户名",onfocus:"用户名至少6个字符,最多10个字符",oncorrect:"恭喜你,你输对了"}).InputValidator({min:6,max:10,onerror:"你输入的用户名非法,请确认"});

 $("#test2").formValidator({onshow:"请选择你的兴趣爱好(至少选择3个,最多选择5个)",onfocus:"你至少选择3个,最多选择5个",oncorrect:"恭喜你,你选对了"}).InputValidator({min:3,max:5,onerror:"你选的个数不对(至少选择3个,最多选择5个)"});

 $("#test3").formValidator({onshow:"请选择你的兴趣爱好(至少选一个)",onfocus:"你至少选择1个",oncorrect:"恭喜你,你选对了"}).InputValidator({min:1,onerror:"你选的个数不对"});

 $("#xueli").formValidator({onshow:"请选择你的学历",onfocus:"学历必须选择",oncorrect:"谢谢你的配合"}).SelectValidator({onerror: "你是不是忘记选择学历了!"});

 $("#password1").formValidator({onshow:"请输入密码",onfocus:"两次密码必须一致哦",oncorrect:"密码一致"}).InputValidator({min:1,onerror:"密码不能为空,请确认"}).CompareValidator({desID:"password2",operateor:"=",onerror:"2次密码不一致,请确认"});

 $("#nl").formValidator({onshow:"请输入的年龄(1-99岁之间)",onfocus:"只能输入1-99之间的数字哦",oncorrect:"恭喜你,你输对了"}).InputValidator({min:1,max:99,type:"value",onerror:"年龄必须在1-99之间,请确认"});

 $("#aiguo").formValidator({onshow:"爱国的人一定要选哦",onfocus:"你得认真思考哦",oncorrect:"不知道你爱不爱,反正你是选了"}).InputValidator({min:1,max:1,onerror:"难道你不爱国?你给我选!!!!"});

 $("#shouji").formValidator({empty:true,onshow:"请输入你的手机号码,可以为空哦",onfocus:"你要是输入了,必须输入正确",oncorrect:"谢谢你的合作",onempty:"你真的不想留手机号码啊?"}).InputValidator({min:11,max:11,onerror:"手机号码必须是11位的,请确认"}).RegexValidator({regexp:"^[1][0-9]{10}$",onerror:"你输入的手机格式不正确"});

 $("#lxdh").formValidator({empty:true,onshow:"请输入你的联系电话,可以为空哦",onfocus:"你要是输入了,必须输入正确,格式例如:0577-88069620",oncorrect:"谢谢你的合作",onempty:"你真的不想留联系电话了吗?"}).RegexValidator({regexp:"^[[0-9]{3}-|\[0-9]{4}-]?(\[0-9]{8}|[0-9]{7})?$",onerror:"你输入的联系电话格式不正确"});

 $("#ms").formValidator({onshow:"请输入你的描述",onfocus:"描述至少要输入10个汉字或20个字符",oncorrect:"恭喜你,你输对了"}).InputValidator({min:20,onerror:"你输入的描述长度不正确,请确认"});
});
</script>



6、特别说明

如果你在使用过程中碰到什么问题请给我留言,发现bug请不要自行修改,也请留言,达到完善插件的目的,真正服务每个程序开发人员 .
请保留插件的版权申明,谢谢

2
0
(请您对文章做出评价)
« 上一篇:jQuery表单验证插件即将奉上
» 下一篇:jQuery DateTimeMask日期掩码插件即将发布,做为新年大礼献给园子里的朋友!
posted on 2008-01-11 11:12 猫冬 阅读(41736) 评论(766)  编辑 收藏 网摘

评论:
评论共8页: 上一页 1 2 3 4 5 6 7 8 
#663楼 2009-05-29 15:57 | hsxiaoma211[未注册用户]
你好!
使用你的表单验证工具和jquery.form联合使用的时候出现问题,不管验证有没有通过,表单都会提交.

我使用了两种方法,1是按说明写的,2是将验证代码放在一个function checkForm()里,然后使用ajaxSumbit({beforeSubmit:checkForm})

以上都不起作用,不知何故?

  回复  引用    
#664楼 2009-05-29 20:03 | mark35[未注册用户]
@hsxiaoma211
你可以在function checkForm()中ajaxSumbit({beforeSubmit:checkForm}) 之前加上这样一条:

if (!$.formValidator.pageIsValid('1')) {return false;}

  回复  引用    
#665楼 2009-05-30 17:06 | mark35[未注册用户]
@hsxiaoma211
看了源码,发现插件会自动给表单绑定onsubmit事件(return $.formValidator.pageIsValid("1") ),如果照#664楼写法,则会产生两次验证过程。 你可以试试把你表单的提交按钮type从submit改成button。 不过当ajax验证期间就无法自动disabled掉提交按钮了。

或者你不使用jquery.form插件,直接用页面自己的提交或者自己写ajax提交代码。对于后者其实很简单,只需要用jquery的serialize()方法把表单序列化然后作为参数使用jquery的 $.post()方法提交即可。

建议猫冬把内部绑定sumbit方法作为一个init参数来绑定,这样用户在初始化表单时就可以选择是否使用自动绑定onsubmit功能以便自己使用其他方式提交。不然假如我使用自定义ajax去提交,则需要额外使用(if (!return $.formValidator.pageIsValid("1")) return false;)命令来单独判断验证结果,但这样产生的结果是当submit按钮提交时系统会做两次验证,无法通过验证输入框的alert提示会重复弹出两次。 如果把onsumit绑定作为一个初始化参数,那么我就可以使用类似
$.formValidator.initConfig({
fomrid: 'fomr1',
submit: ''
//submit : function() {do ....}
});
这样方式来不给表单绑定onsubmit方法or绑定自定义方法。

  回复  引用    
#666楼 2009-05-30 17:15 | mark35[未注册用户]
------------------------>>>>>>>
你可以在function checkForm()中ajaxSumbit({beforeSubmit:checkForm}) 之前加上这样一条:

if (!$.formValidator.pageIsValid('1')) {return false;}
----------------------------<<<<<<<<<

#664楼表述不正确,更正:
你可以在function checkForm()中加上这样一条:
if (!$.formValidator.pageIsValid('1')) {
return false;
} else {
return null;
}

  回复  引用    
#667楼 2009-05-30 18:53 | mark35[未注册用户]
或者简单的给$.formValidator.initConfig加个开关:

$.formValidator.initConfig({
...
bindsubmit: true //defalt
//bindsubmit: false

})
默认true自动绑定onsubmit事件,用户可以关闭。
这样就可以解决两次验证的情况:
1、自己给表单绑定onsubmit方法,比如 onsubmit='my_submit()'
2、在my_submit()中添加这样的代码
if (! $.formValidator.pageIsValid("1") ) {
return false;
} else {
this.submit();
//或者其他提交方法,比如
/*
var pdata = $('#formid').serialize();
$.post('server.php', pdata, function(r) {
if (r == 1) {alert('提交成功');}
});
*/
}

  回复  引用    
#668楼 2009-06-01 15:12 | laurel[未注册用户]
我有问题请教!
第一: 如果我要判断一个表单,如果为空刚不用判断是否有效.如果非空,判断其是否符合格式.

第二:手机号码的正则不对了.
号段不够全.

  回复  引用    
#669楼 2009-06-01 17:05 | 杨鑫奇      
不错谢谢分享。。下下来测试下
  回复  引用  查看    
#670楼 2009-06-02 11:20 | test56[未注册用户]
有个问题,修改用户信息时,修改后,直接提交 会报修改后的信息已存在 ?再线等待
  回复  引用    
#671楼 2009-06-03 10:40 | mark35[未注册用户]
@test56
这是因为直接提交时(插件)并不作ajax验证。你可以先让(需要作ajax验证的)用户信息输入框获得焦点,然后鼠标点击其他地方(不能是提交按钮)让其失焦(blur)验证。然后再提交。

之所以是这样的设计,应该是暂时无法解决异步失焦验证与post提交事件判断与处理(还没等异步验证返回信息就已经提交出表单)。这个我觉得可以使用JS事件机制来解决。

  回复  引用    
#672楼 2009-06-04 14:30 | jquery~[未注册用户]
你好:

.ajaxValidator({
type:"get",
url:"/user/user_ajaxCheckUsernameIsExist.action",
data:"user.username="+$("#username").val();
});

这里用data:想多传几个参数也传不过去,得到的user.username总是空字符串,希望在新版本中尽快解决,项目中用到了,这点不解决,还是很大瑕疵。



  回复  引用    
#673楼 2009-06-04 16:59 | dododragon[未注册用户]
@mark35

回复666楼

按照您这样的写法,还是不行。能不能帮我看看我的代码

function transfer_order()
{
var options =
{
target: "#order_group",
url: "/template/order.aspx",
type: "POST",
beforeSubmit: check_order()
};
if (!jQuery.formValidator.pageIsValid("1")) {return false;}
jQuery("#order").ajaxForm(options);
jQuery("#order_info").text("信息核对");
}

function check_order()
{

jQuery.formValidator.initConfig
({
formid:"order",
onerror:function(msg){alert(msg);return false;}
})

jQuery("#user_name").formValidator({onshow:"请输入您的姓名",onfocus:"姓名至少2个字,最多5个字",oncorrect:"填写正确"}).inputValidator({min:4,max:10,onerror:"你填写不正确"}).regexValidator({regexp:"name",datatype:"enum",onerror:"姓名格式不正确"})
jQuery("#user_mobile").formValidator({onshow:"请输入您的手机号码",onfocus:"请正确填写手机号码",oncorrect:"填写正确"}).inputValidator({min:11,max:11,onerror:"号码必须是11位的"}).regexValidator({regexp:"mobile",datatype:"enum",onerror:"您输入的手机号有错误"})
jQuery("#user_address").formValidator({onshow:"请输入您的联系地址",onfocus:"联系地址至少10个字",oncorrect:"填写正确"}).inputValidator({min:20,onerror:"你输入的联系地址太短了吧"});
jQuery("#postalcode").formValidator({onshow:"请您输入邮政编码",onfocus:"请正确填写邮政编码",oncorrect:"填写正确"}).inputValidator({min:6,max:6,onerror:"邮政编码应该是6位的"}).regexValidator({regexp:"zipcode",datatype:"enum",onerror:"您输入的邮政编码有错误"})
jQuery("#recipients").formValidator({onshow:"请输入收件人姓名",onfocus:"姓名至少2个字,最多5个字",oncorrect:"填写正确"}).inputValidator({min:4,max:10,onerror:"你填写不正确"}).regexValidator({regexp:"name",datatype:"enum",onerror:"姓名格式不正确"})
jQuery("#amount").formValidator({onshow:"请您填写订阅的套数",onfocus:"最少订阅1套",oncorrect:"填写正确"}).inputValidator({min:1,max:99,onerror:"你填写的不正确"}).regexValidator({regexp:"intege",datatype:"enum",onerror:"填写格式不正确"})
}

  回复  引用    
#674楼 2009-06-07 16:50 | mark35[未注册用户]
@dododragon
你的写法完全错了,像jQuery.formValidator.initConfig , jQuery("#user_name").formValidator(....) 这些代码是在页面加载时就“初始化”而不是在beforeSubmit时去“调用”的。

你这样看看:

<script type="text/javascript">

function transfer_order(){
var options = {
target: "#order_group",
url: "/template/order.aspx",
type: "POST",
beforeSubmit: check_order()
};
jQuery("#order").ajaxForm(options);
jQuery("#order_info").text("信息核对");
}

function check_order(){
if (!jQuery.formValidator.pageIsValid("1")) {
return false;
} else {
return true;
}
}

function formvalidate_init() {
jQuery.formValidator.initConfig({
formid:"order",
onerror:function(msg){alert(msg);return false;},
onsuccess : function() { return true; }
});

jQuery("#user_name").formValidator({onshow:"请输入您的姓名",onfocus:"姓名至少2个字,最多 5个字",oncorrect:"填写正确"}).inputValidator({min:4,max:10,onerror:"你填写不正确"}).regexValidator({regexp:"name",datatype:"enum",onerror:"姓名格式不正确"})
jQuery("#user_mobile").formValidator({onshow:"请输入您的手机号码",onfocus:"请正确填写手机号码",oncorrect:"填写正确"}).inputValidator({min:11,max:11,onerror:"号码必须是11位的"}).regexValidator({regexp:"mobile",datatype:"enum",onerror:"您输入的手机号有错误"})
jQuery("#user_address").formValidator({onshow:"请输入您的联系地址",onfocus:"联系地址至少10个字",oncorrect:"填写正确"}).inputValidator({min:20,onerror:"你输入的联系地址太短了吧"});
jQuery("#postalcode").formValidator({onshow:"请您输入邮政编码",onfocus:"请正确填写邮政编码",oncorrect:"填写正确"}).inputValidator({min:6,max:6,onerror:"邮政编码应该是6位的"}).regexValidator({regexp:"zipcode",datatype:"enum",onerror:"您输入的邮政编码有错误"})
jQuery("#recipients").formValidator({onshow:"请输入收件人姓名",onfocus:"姓名至少2个字,最多5个字",oncorrect:"填写正确"}).inputValidator({min:4,max:10,onerror:"你填写不正确"}).regexValidator({regexp:"name",datatype:"enum",onerror:"姓名格式不正确"})
jQuery("#amount").formValidator({onshow:"请您填写订阅的套数",onfocus:"最少订阅1 套",oncorrect:"填写正确"}).inputValidator({min:1,max:99,onerror:"你填写的不正确"}).regexValidator({regexp:"intege",datatype:"enum",onerror:"填写格式不正确"})

}

</script>

<script type="text/javascript">
$(document).ready(function(){
formvalidate_init();
});
</script>

  回复  引用    
#675楼 2009-06-08 10:10 | xiaoxiong[未注册用户]
$("#tel,#shouji").formValidator({tipid:"telTip",onshow:" ",onfocus:"联系电话或手机请至少填写一个!",oncorrect:"填写正确!"}).FunctionValidator({fun:allEmpty});
function allEmpty(val,elem)
{
return ($("#tel").val()=="" && $("#tel").val()=="")?'联系电话或手机请至少填写一个!':true;
}

这样写网页怎么提示错误呢?
网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0(Compatible Mozilla/4.0(Compatible-EmbeddedWB 14.59 http://bsalsa.com/ EmbeddedWB- 14.59 from: http://bsalsa.com/ ; CIBA; InfoPath.2)
时间戳: Mon, 8 Jun 2009 02:08:58 UTC


消息: 对象不支持此属性或方法
行: 21
字符: 2
代码: 0
URI: http://localhost/bx/index.html

  回复  引用    
#676楼 2009-06-08 15:12 | ddd[未注册用户]
好象用在asp.net页面上有问题,如果一个页面有多个服务器控件BUTTON(不是HTML的INPUT),始终点击每个BUTTON都会进行验证,启用分组验证后一个按钮还会验证两次。
因为一个页面不可能仅有一个BUTTON的,而通常验证只需要提交时才用到,每页都加分组也很麻烦,请问这个如何处理?

  回复  引用    
#677楼 2009-06-09 08:08 | dododragon[未注册用户]
@mark35
感谢你,按照你的写法,没有问题了。

  回复  引用    
#678楼 2009-06-09 09:42 | ddd[未注册用户]
如果按钮放在UpdatePanel里面只能验证一次,第二次提交时提示setting.0为空
  回复  引用    
#679楼 2009-06-10 16:30 | amoszw[未注册用户]
请教,ASP.NET的asp:LinkButton作为提交按钮,在表单校验不通过时,如何不让提交按钮执行后台代码(提交保存事件)?
  回复  引用    
#680楼 2009-06-11 09:40 | mark35[未注册用户]
@amoszw
如果是标准提交按钮 <input type='submit' ..... /> 那么当验证不通过不会提交。如果是其他类型按钮(比如 <input type='button' ... 或者 <button ..)那么得自己判断验证返回值,如果返回为false 则阻止提交流程。

  回复  引用    
#681楼 2009-06-11 15:30 | amoszw[未注册用户]
@mark35
非常感谢!!

解决方法是
function checkForm() {
if (!$.formValidator.pageIsValid('1')) {
return false;
} else {
return null;
}
}


<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="javascript:return checkForm();" onclick="LinkButton1_Click" CausesValidation="true">LinkButton提交</asp:LinkButton>


另还有其他问题,就是:

--引用--------------------------------------------------
wenzhu: 时间的验证好像有点问题, 当时间没有通过的时候,提交时,提交按钮的值就变成了时间,时间插件就自动跑出来了
--------------------------------------------------------

我也发现同样的问题,我用的版本是V3.3,用asp:LinkButton作为提交按钮,还有就是日期不能验证其在min: "1900-01-01", max: "2000-01-01"之间
如:
$("#csny").focus(function() { WdatePicker({ skin: 'whyGreen', oncleared: function() { $(this).blur(); }, onpicked: function() { $(this).blur(); } }) })
.formValidator({onshow: "请输入的出生日期", onfocus: "请输入的出生日期,不能全部是0哦", oncorrect: "你输入的日期合法" })
.inputValidator({ min: "1900-01-01", max: "2000-01-01", type: "date", onerror: "日期必须在\"1900-01-01\"和\"2000-01-01\"之间" });

  回复  引用    
#682楼 2009-06-13 08:24 | 大鸟渣[未注册用户]
老大 怎么获取脚本啊 我点获取脚本 复制在TXT文件上 为空白 请及时联系我 EMAIL
  回复  引用    
#683楼 2009-06-16 20:59 | mengqingyu[未注册用户]
发现个bug 如果用这个插件的ajax验证 当他访问服务器端的时候 这个表单的验证码会丢失 如果不用插件的ajax验证码会存在在session里但是只要用了一次 session里的验证码就丢了 而且我试过在第一次ajax请求时候取得session一样是null

  回复  引用    
#684楼 2009-06-18 20:36 | 盒子盒子
楼主您好!有个问题请您帮忙!我使用下面的代码想实现AJAX的动态验证用户是否存在,可以实现。但同相同的用户不可以被验证多次。我应该怎么修改AJAX的内容呀!谢谢!
$(document).ready(function(){
alert("11111");
$.formValidator.initConfig({onError:function(msg){alert(msg)}});
$("#username").formValidator({
onshow:"请输入用户名",onfocus:"用户名为6至16个字符",oncorrect:"该用户名可以使用"
}).InputValidator({min:6,max:16,onerror:"用户名长度有误"
}).RegexValidator({
regexp:"username",datatype:"enum",onerror:"用户名格式不正确"
}).AjaxValidator({
type : "get",
url : "student/operate.do",
data: "op=checkReg&ram=" + Math.random(),
success : function(data){
if( data == 1 )
{
return true;
}
else
{
return false;
}
},
buttons: $("#regButton"),
error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
onerror : "该用户名已被使用",
onwait : "正在对用户名进行合法性校验,请稍候..."
}).DefaultPassed();
});

  回复  引用    
#685楼 2009-06-18 20:55 | 盒子盒子
例如:

首先将输入用户名:aaaaaa将光标移到密码位置,会提示“该用户名可以使用”。然后将光标移动到用户名输入框会提示“用户名为6至16个字符”,再将光标移动到密码位置还是提示“用户名为6至16个字符”。我想实现的是当输入用户名后每当光标移动到用户名出都会调用ajax中url 的方法。我该如何修改上面的代码呢!

谢谢

  回复  引用    
#686楼 2009-06-18 21:03 | 盒子盒子
请问调用AjaxValidator({
type : "get",
url : "student/operate.do",
data: "op=checkReg&ram=" + Math.random(),
success : function(data){
if( data == 1 )
{
return true;
}
else
{
return false;
}
是chang事件,还是focus或blur事件。

  回复  引用    
#687楼 2009-06-19 10:09 | kanaun[未注册用户]
我用验证框架和表单提交框架结合起来,添加成功后表单清空,但是点添加还是可以添加验证没有使用,请问怎么办?
  回复  引用    
#688楼 2009-06-19 16:36 | mark35[未注册用户]
@盒子盒子
默认是blur。如果是下拉菜单则为onchange

  回复  引用    
#689楼 2009-06-29 13:32 | rad
和ajaxForm插件有冲突?
$('#formModal').ajaxForm({target: 'targetid'});
$.formValidator.initConfig({ formid: 'formModal' });

同时绑定form的话就有冲突了 验证不起作用了
怎么解决?

  回复  引用    
#690楼 2009-06-29 14:08 | rad
哦 ajaxForm有个beforeSubmit属性
加个验证就可以了

  回复  引用    
#691楼 2009-07-03 10:32 | RTTA[未注册用户]
猫兄,我验证的页面使用的ajax提交,但是页面提交过一次后,页面元素不初始化,怎么才能初始化页面元素呢,不然验证就不起作用了
  回复  引用    
#692楼 2009-07-03 16:41 | 特斯太
AjaxValidator的后面跟着.DefaultPassed()时,第一次打开页面,对文本框的空值不验证。请猫兄指点一下
  回复  引用    
#693楼 2009-07-08 12:42 | siceberg[未注册用户]
在jQuery1.2及以上版本中,选择所有checkbox应该使用 input:checkbox
现在应用用老的写法已经会出现问题了

  回复  引用    
#694楼 2009-07-09 17:12 | dododragon[未注册用户]
请问怎么能验证2个及2个以上的表单?例如

<form id="form1" name="form1">
...
</form>

<form id="form2" name="form2">
...
</form>

$.formValidator.initConfig{}分别设置了validatorgroup,不起作用,请问怎么设置?

  回复  引用    
#695楼 2009-07-09 19:46 | dododragon[未注册用户]
引用dododragon:
请问怎么能验证2个及2个以上的表单?例如

<form id="form1" name="form1">
...
</form>

<form id="form2" name="form2">
...
</form>

$.formValidator.initConfig{}分别设置了validatorgroup,不起作用,请问怎么设置?


忘了说了,是在同一个页面里

  回复  引用    
#696楼 2009-07-10 10:49 | mark35[未注册用户]
楼上看Demo
  回复  引用    
#697楼 2009-07-14 13:28 | canca[未注册用户]
caChecker更出色:
http://www.antsws.com/archives/82/

  回复  引用    
#698楼 2009-07-23 14:23 | 壞蛋思維[未注册用户]
现在支持 189手机号码了没?

demo 里面是不支持的

  回复  引用    
#699楼 2009-08-05 15:59 | soulpp[未注册用户]
在遨游浏览器里

alert弹出的提示框点确定不会消失啊

演示里的Email校验就是这样

  回复  引用    
#700楼 2009-08-17 17:33 | Kinggoad      
这个插件真的很好用,
但我有个问题

就是如果,有这么一种情况

就是不填写内容的时候,不检测.这个应该要怎么做呢,

换句话说,就是只有填写的内容不为空时,才做按我们定的规则检测,如果为空.则通过!


  回复  引用  查看    
#701楼 2009-08-20 10:50 | 来宾[未注册用户]
引用soulpp:
在遨游浏览器里

alert弹出的提示框点确定不会消失啊

演示里的Email校验就是这样



我这的遨游也是这样,不停地ALERT

  回复  引用    
#702楼 2009-08-20 18:40 | 十分大方[未注册用户]
当我提交表单的时候,如果不成功,我只想提示showword(文字)模式错误,不想要showalert(弹出)模式错误提示,ext就是这么做的,请问你这里是否目前可以通过配置做到呢?
  回复  引用    
#703楼 2009-08-24 23:33 | 推土机soft      
提个建议。

能否加个事件,当验证不通过的时候,可以改变控件的样式,或者可以调用其他函数?

最近在做一些系统的录入页面,刚好看到了你这个,真的很好。不过由于我页面的textbox太多,根本没有地方放提示信息,所以希望如果验证失败,可以把这个这个改个css,突出显示就好,不一定要文字提示

  回复  引用  查看    
#704楼 2009-08-25 10:28 | tata[未注册用户]
ajax验证如何内容变动才触发ajax验证,内容不变不回触发
  回复  引用    
#705楼 2009-09-08 15:40 | chqipy      
好像暂时没有支持下面这种情况哦:
问题描述:有一个输入控件id="input1",然后我用JS将它的id变化成了id="input2",因为初化化的时候只有注册了ID为input1的控件的事件,那我怎么去注册验证重新定义了ID的input2控件的事件呢?
归纳:也就是说当控件的ID和NAME在受到第三方修改后我怎么重新去注册它 的事件?
情况:我的表单中有一个select控件,一个input控件,select的change事件会将input的属性(id、name等)做出相应的改变。改变后的Input要能及时的注册验证事件
------------------修改--------------------
我自己已经另类的解决了,我放弃了改变属性的方式去得到一个新的控件,改用了传统的JQUERY生成新的控件,在生成的时候注册相应的验证事件。

  回复  引用  查看    
#706楼 2009-09-15 11:34 | wxianfeng[未注册用户]
一直在用这个alidator 谢谢~
  回复  引用    
#707楼 2009-09-17 10:48 | 猫1[未注册用户]
身份证的验证 对 15的 是失效的请看看
  回复  引用    
#708楼 2009-09-17 16:11 | Teresa Mo      
你好,当一个需要验证的页面里有多个按钮时,我想只一个按钮进行验证,其他按钮不验证(其中有要提交到服务器端的按钮),请问怎样设置?谢谢
  回复  引用  查看    
#709楼 2009-09-18 15:02 | jquery rookie[未注册用户]
楼主能不能见个群啊,方便交流啊!

  回复  引用    
#710楼 2009-09-20 22:33 | wangyong969      
刚看到楼上的朋友说建一个群,楼主又不在,我这里又空了一个群,愿意加的话,大家看到的加进来,讨论一下了,群号:6325231
  回复  引用  查看    
#711楼 2009-09-23 15:34 | TAONY      
在输入的文本中只要有空格就会判断为空。这个挺麻烦的事情,不知道怎么改了。。
  回复  引用  查看    
#712楼 2009-09-23 16:33 | 兰[未注册用户]
这个,可以验证密码强度吗??(⊙_⊙)?
  回复  引用    
#713楼 2009-09-24 11:55 | pic_name      
jquery-1.3.2.min.js
采用这个版有错,
比如:287行:len = $("input[@type='"+sType+"'][@name='"+srcjo.attr("name")+"'][@checked]").length;
这个写法不兼容了,改为
len = $("input:" + sType + "[name='" + srcjo.attr("name") + "'][checked=true]").length;
勉强通过了,可是提示出问题了,出现组checkbox,只能提示最后一组。

  回复  引用  查看    
#714楼 2009-09-24 14:54 | pic_name      
嘻嘻,解决了,是jquery-1.3.2.min.js
自己的问题

  回复  引用  查看    
#715楼 2009-09-24 19:46 | 涛仔[未注册用户]
如何将所有的错误信息集中显示在某处?
  回复  引用    
#716楼 2009-09-25 21:24 | mark35[未注册用户]
@Teresa Mo
试试看只给需要的按钮绑定验证。不在<form>里面绑定onsubmit。

  回复  引用    
#717楼 2009-09-27 00:11 | 啊啊啊啊啊啊[未注册用户]
有个问题,就是我做上一步,下一步的操作,当我返回上一步是,用户名的默认是有值的时候,这个时候Ajax校验就出问题了,之前的验证可用的用户名这个时候提示不可用,怎么处理。
  回复  引用    
#718楼 2009-10-05 19:52 | mark35[未注册用户]
@啊啊啊啊啊啊
目前程序无法处理,必须更新一下那个输入框的内容(比如添加一个字符然后再删除)ajax认证才会通过

  回复  引用    
#719楼 2009-10-13 17:04 | 周德伦      
怎么我一刷新 又提交一次啊?
  回复  引用  查看    
#720楼 2009-10-14 20:06 | form check[未注册用户]
mark35,你可不可以想办法把
"
有个问题,就是我做上一步,下一步的操作,当我返回上一步是,用户名的默认是有值的时候,这个时候Ajax校验就出问题了,之前的验证可用的用户名这个时候提示不可用,怎么处理。"这个问题改一下他的代码吗! 这个问题确实很多人都遇到了.

  回复  引用    
#721楼 2009-10-15 23:10 | 杨鬼[未注册用户]
更新时必须更新一下那个输入框的内容(比如添加一个字符然后再删除)ajax认证才会通过..希望能解决..
  回复  引用    
#722楼 2009-10-18 20:04 | lwb33[未注册用户]
引用 杨鬼:更新时必须更新一下那个输入框的内容(比如添加一个字符然后再删除)ajax认证才会通过..希望能解决..


兄弟你说的这个问题,我也有碰到,非常苦恼。
想了个将就的方法。

this.RegisterStartupScript("value", " <script type='text/javascript'> $('#txtUsersLoginName').focus();$('#txtUsersLoginName').val('" + user.UsersLoginName + "');</script>");

用脚本对控件获得一下焦点。再用脚本赋值。这样最少不会出现那个错误的明显bug,很希望插件能解决这个问题

我觉得
1。以上的明显bug。体现在作者的demo1.htm 上,作者居然没发现
2。ajax 认证url:不支持拼接字符串很不方便

  回复  引用    
#723楼 2009-10-23 17:14 | codeMaker      
如果对表单中的某个提交按钮不想进行验证,如何设置?

急!!!!!!

zhengxinzhe@sohu.com

  回复  引用  查看    
#724楼 2009-10-23 17:25 | codeMaker      
引用Teresa Mo:你好,当一个需要验证的页面里有多个按钮时,我想只一个按钮进行验证,其他按钮不验证(其中有要提交到服务器端的按钮),请问怎样设置?谢谢


  回复  引用  查看    
#725楼 2009-10-26 21:18 | mark35[未注册用户]
@codeMaker #724
在这个按钮的onclice事件中执行验证

  回复  引用    
#726楼 2009-10-27 17:26 | mark35[未注册用户]
@form check #720
想到一个办法,抽时间看看。

  回复  引用    
#727楼 2009-10-28 18:27 | shaiyue[未注册用户]
用此插件的ajax验证中文用户名一直没通过,英文名称正常,请问是否是不支持中文验证!
  回复  引用    
#728楼 2009-10-29 18:15 | mark35[未注册用户]
@shaiyue
支持中文验证呀。是不是你页面/后台/数据库不是UTF-8编码?

  回复  引用    
#729楼 2009-11-02 17:33 | checkbox[未注册用户]
$(":checkbox[name='select']").formValidator({tipid:"ckTip",onshow:"请选择维修内容(至少选一个)",onfocus:"你至少选择1个",oncorrect:"恭喜你,你选对了"}).inputValidator({min:1,onerror:"你选的个数不对"}); <input type="checkbox" name="select" id="ck" value="1" runat="server" />
<input type="checkbox" name="select" id="ck1" value="2" runat="server" />


加了runat="server"后,验证控件不显示了?

  回复  引用    
#730楼 2009-11-02 21:40 | mark35[未注册用户]
@checkbox
我这儿直接添加个runat="server"属性验证正常呀

  回复  引用    
#731楼 2009-11-05 11:18 | 午夜香吻      
在asp.net里,设置debug:true,submitnce:true,验证成功后按钮是变灰色的,因为是调试模式,当然无法响应按钮的点击事件。
但是设置debug:false,submitnce:true,却也无法执行按钮的点击事件,请问是何原因?
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><div id="TextBox1Tip">
</div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
</form>
后台:
protected void Button1_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000); //延迟5秒
Response.Write("执行了!");
}

  回复  引用  查看    
#732楼 2009-11-05 20:03 | mark35[未注册用户]
@午夜香吻
submitonce false 校验通过后,是否灰掉所有的提交按钮
这个功能就是校检成功后禁用提交按钮功能呀

  回复  引用    
#733楼 2009-11-09 10:25 | dixiashi      
DateTimeMask.js中的【EnterMoveToNext】貌似没有起到相应的作用啊,我的测试环境是【IE8】,【jQuery DateTimeMask 2008-02-04】,【jquery-1.3.2-vsdoc2.js】
  回复  引用  查看    
#734楼 2009-11-09 16:32 | 伈随峰飞[未注册用户]
希望猫冬能加个功能,比如说邮箱,如果输入提示格式是否正确,如果不输入就不提示!
我的邮箱gaofeng_monica@163.com

  回复  引用    
#735楼 2009-11-11 13:08 | 浪子阿水[未注册用户]
请问,在弹出Iframe 里的提示的位置问题解决了吗?现在用的版本在弹出的iframe中,会全部显示到左上角,要刷新一次才正常显示.
  回复  引用    
#736楼 2009-11-12 16:47 | Coppola      
引用ddd:好象用在asp.net页面上有问题,如果一个页面有多个服务器控件BUTTON(不是HTML的INPUT),始终点击每个BUTTON都会进行验证,启用分组验证后一个按钮还会验证两次。
<br/>因为一个页面不可能仅有一个BUTTON的,而通常验证只需要提交时才用到,每页都加分组也很麻烦,请问这个如何处理?

我也遇到这问题。楼主帮忙看看。

  回复  引用  查看    
#737楼 2009-11-15 13:52 | 快乐强强[未注册用户]
猫冬,你好,
在使用中发现一个问题,我的form最后一项验证码是使用的ajax验证,如果在输入完验证码后,立刻点击submit按钮,此时验证码框先blur失去焦点调用ajax进行验证,验证通过后自动提交form,在内网环境下是没有问题的,但如果在外网环境下,ajax的验证如果比较慢,则需要在zjax验证完成之后,再多点一次submit按钮才能提交form,又什么好的解决办法没有?

  回复  引用    
#738楼 2009-11-18 00:10 | lwb33[未注册用户]
@mark35
不知道楼主什么时候出更新版

  回复  引用    
#739楼 2009-11-18 11:24 | mark35[未注册用户]
引用浪子阿水:请问,在弹出Iframe 里的提示的位置问题解决了吗?现在用的版本在弹出的iframe中,会全部显示到左上角,要刷新一次才正常显示.

这个似乎无解。因为在初始化时iframe里面的元素都是隐藏状态取不到位置信息(都是0),所以当iframe显示后全部都使用了0于是挤到一块,再刷新就正常(这时候被绑定了验证的元素都有了位置信息)。

  回复  引用    
#740楼 2009-11-18 11:25 | mark35[未注册用户]
引用快乐强强:
猫冬,你好,
在使用中发现一个问题,我的form最后一项验证码是使用的ajax验证,如果在输入完验证码后,立刻点击submit按钮,此时验证码框先blur失去焦点调用ajax进行验证,验证通过后自动提交form,在内网环境下是没有问题的,但如果在外网环境下,ajax的验证如果比较慢,则需要在zjax验证完成之后,再多点一次submit按钮才能提交form,又什么好的解决办法没有?

这是程序流程问题,除非修改程序否则无解。

  回复  引用    
#741楼 2009-11-20 09:16 | 1113333[未注册用户]
@mark35
鞢在士大夫甘劳而无功

  回复  引用    
#742楼 2009-11-22 18:06 | mark35[未注册用户]
@1113333
呵呵,方便别人就是方便自己。
博主估计是闭关修炼去了。自己时间太紧不然就帮着打点补丁了。

  回复  引用    
#743楼 2009-11-23 17:12 | 路ren[未注册用户]
@mark35
可以采用预加载的方式,不要隐藏,而是设置一个magin-left:-9999,让元素不显示出来,实际上已经加载了

  回复  引用    
#744楼 2009-11-23 17:27 | 张永存(Jerry)      
看了这个验证控件感觉非常好,
但却有一个非常要命的问题,不知道作者是否有这种需求?

因为您的验证控件是对id进行验证的

但往往我们在做验证的时候都是对form里面的name进行的
但是这个验证是对应id的,当我网页和很多内容,而且有多个form进行验证的时候就很麻烦
比如我一个页面更新
父级(Master)
子级(Clinet)
<form id="frmMaster">
<input type="text" name="ID" value="1">
<input type="text" name="Name" value="">
<input type="submit" value="提交" >
</form>
<form id="frmClient">
<input type="text" name="ID" value="1">
<input type="text" name="Name" value="">
<input type="submit" value="提交" >
</form>
------------------
如果像上面的话用JqueryValidate是很好的来做验证,因为他是根据name来做验证的
但是如果用你这个的话我不得不用
父级(Master)
子级(Clinet)
<form id="frmMaster">
<input type="text" id="ID" value="1">
<input type="text" id="Name" value="">
<input type="submit" value="提交" >
</form>
<form id="frmClient">
<input type="text" id="ID1" value="1">
<input type="text" id="Name1" value="">
<input type="submit" value="提交" >
</form>
这样就很造成很大的麻烦

如果能更改为对name进行验证的话,实在是太感谢了
谢谢

  回复  引用  查看    
#745楼 2009-11-29 11:55 | 22222222222222222222222222222[未注册用户]
在ajaxValidator验证时默认将本控件加到URL后传到后端
如果想传多几个其它控件的值过去一起验证
怎么设?
这个问题 知道的回复一下 非常感谢!
qq 315136798

  回复  引用    
#746楼 2009-12-01 09:57 | 水李[未注册用户]
引用mark35:
引用浪子阿水:请问,在弹出Iframe 里的提示的位置问题解决了吗?现在用的版本在弹出的iframe中,会全部显示到左上角,要刷新一次才正常显示.

这个似乎无解。因为在初始化时iframe里面的元素都是隐藏状态取不到位置信息(都是0),所以当iframe显示后全部都使用了0于是挤到一块,再刷新就正常(这时候被绑定了验证的元素都有了位置信息)。



那如何让页面重新刷新一次呢???是否可以通过appendto的方法解决这个问题,直接加到被检测表单后面?

  回复  引用    
#747楼 2009-12-01 11:22 | mark35[未注册用户]
@22222222222222222222222222222
我已经贴过补丁代码了呀。你找找留言,要不就是在3.5版本页面的留言里面。

  回复  引用    
#748楼 2009-12-02 22:28 | kumaws      
我现在的项目全程用你的formValidator做验证,环境是asp.net。
所有表单都做在FormView中,我同时对Insert与Update两种状况做验证处理(允许同名ID),Insert还好,但是Update时会对一些控件做绑定数据,例如“姓名”的textbox绑定上显示了数据,但是formvalidator对这个textbox还是显示的提示状体,并没有显示验证通过的状态,必须在textbox里点那么一下再点出来才可以通过。
请问遇到数据初始绑定,我怎么处理?
(DefaultPassed()针对空也会通过)

  回复  引用  查看    
#749楼 2009-12-09 13:13 | Alfa.wu      
日期验证貌似有问题。

问题1: 日期验证有问题

formValidator.js 第 562 行:
if(lb_go_on){val = new Date(val);setting.min=new Date(setting.min);setting.max=new Date(setting.max);};

当 type 是 date 的情况
val 被转换后的值为: NaN

导致在验证的时候出现bug
不知道为什么,第一次是好的。后来都是不行的,就是在验证时间的 min 和 max 的时候。后来就都无效了。

问题2: 日期加时间验证有问题
当 type 是 datetime 的情况的时候。

formValidator.js 第 561 行:
if(type=="datetime"){lb_go_on = isDate(val)};

这里的判断应该是 isDateTime吧,我怎么试都是 false 所以应该是 isDateTime
另外 第 562 行:
if(lb_go_on){val = new Date(val);setting.min=new Date(setting.min);setting.max=new Date

datetime 类型输入时,这里也不管怎么转都变成了。 NaN 了。

请博主帮忙看一下!
------------------------------------

自己已经解决但是不知道这样是否可行,是否符合规范!请博主指点:

将 formValidator.js 的 第 561 行:

if(type=="datetime"){lb_go_on = isDate(val)};

改成:

if(type=="datetime"){lb_go_on = isDateTime(val)};


将第 562 行 注释,就可以了,
因为问题就出在把 val 转换成 日期型的时候出错了!



  回复  引用  查看    
#750楼 2009-12-14 14:12 | Chrome Loo      
最近碰到这种表单验证的问题,感谢楼主。
  回复  引用  查看    
#751楼 2009-12-16 12:29 | 一地在[未注册用户]
你好,我在用这一控件做验证的时候,发现如果其中要是用了一个日历控件填写日期的话,那么当我FORM中什么都不填写的时候,点提交会有刷新页面,然后页面显示一个日历.请问这是为什么?我个人觉得是因为没有通过验证,日期栏获取焦点后显示了日历.可是我没有好的解决办法,请问你有什么建议吗?
  回复  引用    
#752楼 2009-12-21 09:56 | sanata      
对不去 ,我想问下, 是否能把所有错误信息显示在一个地方呢?
比如我都放在右上角,然后多一条错误信息,就换行多写一条。(其他所有信息都不需要)

然后哪些提示信息我希望从xml配置文件中读取,可以吗?

谢啦~~~

  回复  引用  查看    
#753楼 2009-12-21 15:03 | gundumw100[未注册用户]
String userId=request.getParameter("userId");
ajaxValidator 传递的参数是中文会乱码(userId)


$("#userId").ajaxValidator({
type : "post",
url : "login.portal?action=checkUser",
//data:"userId="+$("#userId").val(),//这里得不到value datatype : "html",
success : function(data){
var text=$(data).text();
if(text=="yes"){
return true;
}else{
return false;
}
},
error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
onerror : "该用户名不可用,请更换用户名",
onwait : "正在对用户名进行合法性校验,请稍候..."
});

  回复  引用    
#754楼 2009-12-21 18:19 | Daniel Chow      
.ajaxValidator 如果返回时xml格式数据时,封装后的success: function(data) {} 这里的data都不是xml的了,不能直接用jQuery解析,下个版本希望解决!我目前额外加了一个把string转成xml的函数.
  回复  引用  查看    
#755楼 2009-12-22 11:39 | 末日危机[未注册用户]
我用了这个插件,感觉是非常好用,但是碰到一个问题,就是我在页面中,用到了DWR的联动下拉框,而这两个脚本文件有发生冲突,请问,怎么能解决这个问题,期待你的速回,可以恢复到我的邮箱里面吗?十分感谢。。。。。
  回复  引用    
#756楼 2009-12-22 14:40 | 钱峰qianfeng      
引用末日危机:我用了这个插件,感觉是非常好用,但是碰到一个问题,就是我在页面中,用到了DWR的联动下拉框,而这两个脚本文件有发生冲突,请问,怎么能解决这个问题,期待你的速回,可以恢复到我的邮箱里面吗?十分感谢。。。。。

呵呵,我有遇到过这样的情况,望能解决

  回复  引用  查看    
#757楼 2009-12-22 14:48 | gundumw100[未注册用户]
我现在还在用V3.1版本的,想把以前的工程里用到的formValidator换成3.5的,可是直接覆盖上去就不能验证了(3.1里可以验证的),难道用法两样了?
  回复  引用    
#758楼 2010-01-09 10:36 | 忆起      
楼主,你好,在使用fromvalidator过程中感觉很棒,但是在用ajaxvalidator验证用户名的唯一性时,发现一个问题:如果页面加载时给用户名input赋值后,即使这个用户名数据库中并不存在,依然提示《onerror : "该用户名不可用,请更换用户名",》里面的提示信息,麻烦楼主解惑,非常感谢!
  回复  引用  查看    
#759楼 2010-01-27 14:22 | 励冰      
猫冬
你用的是哪一种JS压缩工具啊。

  回复  引用  查看    
#760楼 2010-02-02 17:34 | <font color=red>Truly</font>      
压缩器很有意思参数名加起来就是packer, 楼主的这个插件用了一下发现一个bug,当onshow指定为空时,会出现tip显示不出来,对应js3.3版本代码位置为153行:
tip.hide();
这里隐藏之后,即使出错了tip也不会再显示了。在166行后面增加
tip.show();
代码后解决此bug。 压缩后的js位置为搜索"C.15(t)"改为"C.15(t);C.4T()"即可(注意搜索的是引号内的部分)。

对代码修改可采用下列方法,适用于3.3版
var arr=3.3版本的字符串数组
var a = 62;
var c = 327;//3.3版数组长度
e=function(c){
return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};
alert(e(arr('showTooltips')));//即转换为压缩后的短码

  回复  引用  查看    
#761楼 2010-02-03 12:57 | <font color=red>Truly</font>      
又发现一个bug,如果配置alertmessage为false时,调用pageIsValid则只会focus到第一个出错的控件,但不会显示错误消息。此bug也要修改源码,在393行附近修改为
elem.focusforpagevalid=true;// truly add
$.formValidator.showMessage(returnObj);
在750行附近修改为
var tipjq = $("#"+tip);
if(this.focusforpagevalid) return;//truly add
762行附近修改为
jqobj.bind(setting.triggerevent, function(){
this.focusforpagevalid = false;// truly add


formValidator_min.js文件修改方法:
{4(!6.d){1N=1N+N+"^"}后增加h.E=f;
4(!n.Y){5 2O=$("#"+C);后增加4(c.E)g;
I.T(3.3H,8(){后增加c.E=j;

  回复  引用  查看    
#762楼 2010-02-03 14:46 | <font color=red>Truly</font>      
最后一贴:从3.3升级到3.5。
主要是根据jquery选择器语法变化做了3处调整:

line 288
len = $("input[@type='"+sType+"'][@name='"+srcjo.attr("name")+"'][@checked]").length;
to:
len = $("input[type='"+sType+"'][name='"+srcjo.attr("name")+"']:checked").length;

line
len = $("select[@name="+elem.name+"] option[@selected]").length;
to
len = $("select[name="+elem.name+"] option:selected").length;

line
if(initConfig.submitonce){$("input[@type='submit']").attr("disabled",true);}
to
if(initConfig.submitonce){$(":submit").attr("disabled",true);}


对应压缩后的代码调整为:
D=$("2u[@q=\'"+16+"\'][@1M=\'"+r.1u("1M")+"\'][@45]").B;
to
D=$("2u[q=\'"+16+"\'][1M=\'"+r.1u("1M")+"\']:45").B;


D=$("Q[@1M="+h.1M+"] 47[@48]").B;v}g D},
to
D=$("Q[1M="+h.1M+"] 47:48").B;v}g D},

4(n.2b){$("2u[@q=\'2X\']").1u("2z",f)}}
to
4(n.2b){$(":2X").1u("2z",f)}}


升级到3.5后的完整代码(加了我前2贴提到的bug补丁)
http://files.cnblogs.com/Truly/formValidator3.5p.rar

  回复  引用  查看    
评论共8页: 上一页 1 2 3 4 5 6 7 8