JQuery表单应验插件EasyValidator,超级简单易用
DEMO中已经包含了常用的正则表达式,可以直接复用,为了考虑扩展性,所以针对不同用户特殊需求,自行写正则吧。
EasyValidator实现的功能:
1.提示功能(在表单或者其他标签中加入tip="想提示的文字")
如:
<input name="name" tip="请输入你的名字哟~">
或者
<a href="http://wangking717.iteye.com/blog/769021" tip="到EasyValidator官方主页来" target="_blank">有疑惑可以到这里提问</a>
2. 普通表单验证(在表单中加入reg="正则表达式")
如: <input name="username" reg="正则" />
普通表单验证DEMO:http://easyvalidator.googlecode.com/svn/trunk/index.html
3. AJAX表单验证(在表单中加入url="验证系统地址")
如: <input name="username" url="地址" />
AJAX验证DEMO:没有在线演示,请在本地运行ajax_demo.html,请求远程的PHP文件,当然可以为JSP或者ASP,我这里在程序里预设了一些已存在的数据,用户可以自行参考。
4. 普通表单验证 + AJAX表单验证 (普通验证通过以后,再进行AJAX验证)
如: <input name="username" reg="正则" url="地址" />
5. 扩展函数表单验证(某些业务特殊需求):
这些特殊需求都是根据业务来的,这里列举一下这样的情况:
1.checkbox选择框数量验证,如限制别人至少选择1个,最多选择5个checkbox。
2.多个表单之间进行比较,如【开始时间表单】一定小于等于【结束时间表单】或者两个密码表单要相等,用于注册的时候,等等。
由于这种情况的特殊性,所以用户得自己写业务逻辑代码,官方已经提供了extendsValidate扩展函数,在里面写自己的逻辑代码即可。
扩展函数表单验证DEMO:http://easyvalidator.googlecode.com/svn/trunk/extends_demo.html
BUG修复日志:
2010-9-24 : 修复同一页多个FORM提交BUG ,TIP错位BUG
2010-9-26 : 新增bgiframe插件, 修复IE6下TIP 遮罩不了 SELECT表单
2010-9-27 : 增加扩展API,并重构核心库
2011-1-1 : 将表单验证的TIP独立出来,让TIP,URL,REG成为单独的组建而存在,更加灵活!
2011-1-28 : 修改了AJAX的TIP纠错BUG,逻辑修改,并且将AJAX的请求的远程程序validate_user.php的编码设置GB2312。
最新下载地址:http://code.google.com/p/easyvalidator/downloads/list
在线正则验证器:http://regexpal.com/
现在好像只支持表单的验证,对于ajax提交的请求,无法进行验证。
不过,稍微改一下就可以支持了。
谢谢!
/** * 供ajax请求调用,前台页面调用方式有两种: * if(!validator_check("username")) { return false; } 或者采用数组的方式: if(!validator_check(["username","password"])) { return false; } * @param obj * @return */ function validator_check(obj) { var isSubmit = true; if(!isArray(obj)) { isSubmit = validate($("#"+obj)); } else { for(var i=0; i < obj.length; i++) { if(!validate($("#"+obj[i]))){ isSubmit = false; } } } if(typeof(isExtendsValidate) != "undefined"){ if(isSubmit && isExtendsValidate){ return extendsValidate(); } } return isSubmit; } function isArray(obj){ return (typeof(obj)=='object') && obj.constructor==Array; }
我现在用的时候出现了一个问题。还请为我解答一下:
我现在在做一个管理系统,经常会用同一个界面来做添加、修改、查看等功能,然后在第一次使用的页面的时候,我可能输错了一些东西,然后又取消了,再弹出这个页面时,会发现前一较验的结果还在,请问有什么方法可以去掉这个结果吗?
附图:
或者也可以说是能不能消除掉上次验证的结果?
添加常用数据类型这样就不用每次都输入正则表达式了
更改样式出错的样式,模仿Eclipse红色波浪线
更改提示框的显示方式
为Form添加属性:success 和faild属性 参考下句
为每一个验证元素都增加了一个success 和faild属性 用来验证失败执行的代码
添加自定义验证 check属性 在这个属性里可以写自己的代码来验证复杂的验证
添加常用数据类型这样就不用每次都输入正则表达式了
更改样式出错的样式,模仿Eclipse红色波浪线
更改提示框的显示方式
为Form添加属性:success 和faild属性 参考下句
为每一个验证元素都增加了一个success 和faild属性 用来验证失败执行的代码
添加自定义验证 check属性 在这个属性里可以写自己的代码来验证复杂的验证
分享一下改过的代码和示例呀,hp3325@163.com