随笔-24  评论-2192  文章-0  trackbacks-20

jQuery formValidator 4.0 表单验证插件(正式版)

插件主页: http://www.yhuan.com/ 求助帖,每帖必应 

QQ交流群:74106519

 

2011/4/30 jQuery formValidator 4.0ver
这次升级要感谢很多在博客里不断留言的网友,特别感谢网友“mark35”在博客上替我回答网友的提问,再次感谢。

 

1、这次升级精简了代码。

2、提高校验的速度。
如果控件的name相同,则只校验一次,加快校验速度

3、修复4个状态为空时,没有隐藏提示的问题。

4、修改initConfig配置里的onerror函数,增加一个“错误列表”参数。你可以把所有的错误信息集中显示在某处
$.formValidator.initConfig({formid:"form1",
onerror:function(msg,obj,errorlist){
    //遍历所有的错误消息
   $.map(errorlist,function(msg1){alert(msg1)}); 
},
onsuccess:function(){alert('ddd');return false;}
});

5、针对问题比较多的ajaxValidator函数,进行如下修改
a、支持同组的所有表单值都传递给服务器端
必须为每个控件增加name属性,否则是不会传递过去的。
b、去掉addidvalue参数。在服务器端,你可以通过name为clientid获取触发验证的控件ID名
c、为formvalidator增加ajax参数(值为true,false,默认true),表示ajaxValidator是否把该表单提交给服务器

6、修正automodify参数(如果输入的值非法,则恢复原来的值)不起作用的问题

7、regexValidator支持多个正则表达式与和或的校验,详见用户手册和demo1
a、增加属性:compareType,比较类型,默认值"||","||"表示或的关系,"&&"表示并列关系
b、原regexp属性支持接收数组
范例如下:
$("#sjdh").formValidator({empty:true,onshow:"请输入你的手机或者电话号码,可以为空哦",onfocus:"格式例如:0577-88888888或11位手机号码",oncorrect:"谢谢你的合作",onempty:"你真的不想留手机或电话了吗?"}).regexValidator({regexp:["tel","mobile"],datatype:"enum",onerror:"你输入的手机或电话格式不正确"});

8、增加函数$.formvalidator.reloadAutoTip(),来重新定位自动构建的提示层
自动构建提示层所在的网页如果在iframe里,如果刚开始是隐藏的,显示的时候,就会全部团聚在左上角。所以当显示页面的时候,要显式的调用该函数。
官方对offset的解释:
Note: jQuery does not support getting the offset coordinates of hidden elements or accounting for borders, margins, or padding set on the body element.

 

 

欢迎你提出宝贵的建议,欢迎你来测试

你可以加入QQ群一起来交流:74106519
 

下载地址

posted on 2011-04-30 18:24 猫冬 阅读(1616) 评论(11) 编辑 收藏

评论:
#1楼 2011-05-12 10:53 | roloxa      
我看好你哟!
 回复 引用 查看   
#2楼 2011-05-12 15:18 | thomaschen      
真没想到竟然出新版本了
之前的ajajx验证是挺有问题了,只能通过自定义函数解决
支持楼主

 回复 引用 查看   
#3楼 2011-05-20 07:16 | weiokx      
设置字段不能为空,为空的时候要给出相应的提示怎么设置?
为空和值错误要分别提示

 回复 引用 查看   
#4楼 2011-05-20 18:05 | BigMouth      
我用在想把这个AJAX事件ajaxValidator 加载到文本框onchange中但是为什么获取不到穿过去的值呢.
 回复 引用 查看   
#5楼 2011-05-20 18:08 | BigMouth      
$("#txt_email").formValidator({onshow:"请输入邮箱",onfocus:"邮箱6-100个字符,输入正确了才能离开焦点",oncorrect:"输入正确!"}).inputValidator({min:5,max:100,onerror:"你输入的邮箱长度非法,请确认"}).regexValidator({regexp:"^([\\w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([\\w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$",onerror:"你输入的邮箱格式不正确"}).ajaxValidator({
datatype : "html",
async : true,
url : "../index/doAjax.aspx?type=useradd",
success : function(data){
if( data.indexOf("此用户名可以注册!") > 0 ) return true;
if( data.indexOf("此用户名已存在,请填写其它用户名!") > 0 ) return false;
return false;
},
buttons: $("#txt_email"),
error: function(XMLHttpRequest, textStatus, errorThrown){alert("服务器没有返回数据,可能服务器忙,请重试"+errorThrown);},
onerror : "该用户名不可用,请更换用户名",
onwait : "正在对用户名进行合法性校验,请稍候..."
}).defaultPassed();;


想让他失去焦点后就提交... 可是获取不到值.

 回复 引用 查看   
#6楼[楼主] 2011-05-22 15:36 | 猫冬      
@thomaschen
目前ajaxValidator函数存在的、已知问题,都已经修复。最新版本号是4.0.1

 回复 引用 查看   
#7楼[楼主] 2011-05-22 15:38 | 猫冬      
@weiokx
formValidator函数里有个配置属性:onEmpty,表示可以为空,为空时候的提示。具体请见新版4.0.1里的问答和用户手册

 回复 引用 查看   
#8楼 2011-07-12 15:41 | ◇゛未命名      
楼主啊:我可是formValidator的忠实粉丝啊。一直都期待着你更新版本解决bug。但好像还有一个没有解决,这也是我很头痛的问题。
在点击button提交再表单验证时,ajaxValidator则无法验证。
但若是页面一加载时就添加了ajaxValidator,再提交时就没有任何问题了。但有时候就是需要button的时候验证的。

 回复 引用 查看   
#9楼[楼主] 2011-07-12 18:03 | 猫冬      
@◇゛未命名
什么情况?你用的版本号?新版里没有你说的问题了

 回复 引用 查看   
#10楼 2011-07-13 09:37 | ◇゛未命名      
我用的是4.0.1版本的。我昨天才试过了的,还是不可以啊
 回复 引用 查看   
#11楼 2011-11-09 12:59 | 叶鹏      
在验证通过的时候onsuccess:function(){alert('ddd');return false;},不起作用,直接提交表单了
 回复 引用 查看   
昵称:猫冬
园龄:5年1个月
粉丝:74
关注:2
<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

搜索

 
 

常用链接

我的标签

随笔档案

相册

最新评论

阅读排行榜