在客户端添加信息提交表单时我们经常需要做一些验证,比如验证不能为空,验证客户输入手机格式,验证客户输入email,url等的格式,我们可以通过EL表达式结合js 进行自主验证,今天总结一个JQuery 插件,进行简单的验证

首先我们来看一个简单的例子,我们需要自动验证是否为空及格式是否正确

  1. <form class="form-horizontal" id="userBaseForm" method="post">
  2.     <div class="form-group form-md-line-input" >
  3. <label class="col-sm-2 col-xs-2 control-label" for="form_control_1"><b>用户账号</b></label>
  4. <div class="col-sm-10 col-xs-10">
  5.   <input id="userNo" name="userNo" placeholder="请填写用户账号(小写字母和数字组合),不能超过14个字符!" class="form-control" />
  6.   <div class="form-control-focus"></div>
  7.   <span class="help-block">请填写用户账号!</span>
  8. </div>
  9. </div>
  10. <div class="form-group form-md-line-input" >
  11. <label class="col-sm-2 col-xs-2 control-label" for="form_control_1"><b>用户名称</b></label>
  12. <div class="col-sm-10 col-xs-10">
  13.  <input id="userName" name="userName" placeholder="请填写用户名称,不能超过8个字符!" class="form-control" />
  14.   <div class="form-control-focus"></div>
  15.   <span class="help-block">请填写用户名称!</span>
  16. </div>
  17. </div>
  18. <div class="form-group form-md-line-input" >
  19. <label class="col-sm-2 col-xs-2 control-label" for="form_control_1"><b>角色</b></label>
  20. <div class="col-sm-10 col-xs-10">
  21.   <select class="form-control" data-live-search="true" name="ext1Int" id="ext1Int">
  22.     <c:forEach items="${roles}" var="role" >
  23.     <option value="${role.roleId}" <c:if test="${role.roleId==9}">
  24. selected = selected
  25. </c:if> >${role.roleName}</option>
  26.     </c:forEach>
  27.   </select>
  28. </div>
  29.     </div>
  30. <div class="form-group form-md-line-input" >
  31. <label class="col-sm-2 col-xs-2 control-label" for="form_control_1"><b>联系电话</b></label>
  32. <div class="col-sm-10 col-xs-10">
  33.   <input id="userTel" name="userTel" placeholder="请填写联系电话名称,不能超过11个字符!" class="form-control"/>
  34.   <div class="form-control-focus"></div>
  35.   <span class="help-block">请填写联系电话!</span>
  36. </div>
  37. </div>
  38. <div class="form-group form-md-line-input" >
  39. <label class="col-sm-2 col-xs-2 control-label" for="form_control_1"><b>电子邮箱</b></label>
  40. <div class="col-sm-10 col-xs-10">
  41.    <input id="userEmail" name="userEmail" placeholder="请填写电子邮箱名称,不能超过20个字符!" class="form-control" />
  42.   <div class="form-control-focus"></div>
  43.   <span class="help-block">请填写电子邮箱!</span>
  44. </div>
  45. </div>
  46. </form>

  1.  

  然后js用validate

  1. <script type="text/javascript">
  2. $(function(){
  3. $("#userBaseForm").validate({
  4. errorElement(用什么标签标记错误,默认是 label,我们设置为span): 'span',
  1. errorClass(指定错误提示的 css 类名,可以自定义错误提示的样式。):'help-block help-block-error',
  1. focusInvalid(提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点。): false,
                         ignore(忽略某些信息不验证): '',
  1. rules(要求): {userNo: {required(必填字段): true,pattern(验证格式):/^[a-z\d]{5,15}$/,remote(异步验证):{type:'post',url:CONSTANT_PATH+'/user/nameVaild',data: {userNo:function(){return $("#userNo").val();}},dataType: "json",dataFilter:function (data){return data;}}},
  2. userName:{required: true,pattern:/^[\u4e00-\u9fa5]{2,10}$/},userTel:{required: true,mobileCN:true},userEmail:{required: true,email:true}},
  3. messages(不符合规则是显示的信息):{userNo:{pattern(验证格式不通过时显示的信息):'用户账号格式非法!',remote(异步验证不成功时显示的信息):'该账号已经存在!'},userName:{pattern:'真实用户名格式非法,必须是中文!'}},
  4. errorPlacement: function(error,element){error.insertAfter(element);},
  5. highlight: function(element) {$(element).closest('.form-group').addClass('has-error');},
  6. unhighlight: function(element) {$(element).closest('.form-group').removeClass('has-error');},
  7. success(成功后对应操作): function(label) {label.closest('.form-group').removeClass('has-error');},
  8. submitHandler(提交对应操作):function(form){(用ajax方式提交form表单)
  9. $.ajax({url:CONSTANT_PATH+"/user/addUserBase",type:"POST",data:$("#userBaseForm").serialize(),
  10. beforeSend:function(){layer.load();},
  11. success:function(data){
  12. if(data.flg) {
  13. parentSucc();
  14. window.parent.reloadFrame();
  15. closeParentDialog();
  16. }
  17. else{
  18. parentError(data.errorMsg);
  19. }
  20. }});
  21. return false;
  22. }});
  23. });
  24. function uptInfoForm(){
  25. $("#userBaseForm").submit();
  26. }
  27. </script>

  这样便可实现如下操作

下一篇见详细介绍validate,该插件可在官网下载https://jqueryvalidation.org/

jQuery Validate 插件[表单验证]的更多相关文章

  1. jQuery Validate 插件[表单验证 属性介绍]

    详细介绍一下Validate插件 $("#form的Id").validate({ }) 属性 规则 描述 required:true 必须输入的字段 required: &quo ...

  2. Jquery.validate.js表单验证插件的使用

    作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...

  3. jQuery.validate.js表单验证插件

    jQuery.validate.js表单验证插件的使用 效果: 代码: <!DOCTYPE html> <html lang="en"> <head& ...

  4. 基于Jquery Validate 的表单验证

    基于Jquery Validate 的表单验证 jquery.validate.js是jquery下的一个验证插件,运用此插件我们可以很便捷的对表单元素进行格式验证. 在讲述基于Jquery Vali ...

  5. 异步提交form的时候利用jQuery validate实现表单验证

    异步提交form的时候利用jQuery validate实现表单验证相信很多人都用过jquery validate插件,非常好用,并且可以通过下面的语句来自定义验证规则    // 电话号码验证    ...

  6. 基于Bootstrap+jQuery.validate Form表单验证实践

    基于Bootstrap jQuery.validate Form表单验证实践 项目结构 :     github 上源码地址:https://github.com/starzou/front-end- ...

  7. 表单验证代码实例:jquery.validate.js表单验证插件

    jquery.validate.js是JQuery旗下的一个验证插件,借助JQuery的优势,我们可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法.使用前请先下载必要的JQuery插件:jq ...

  8. jquery.validate.js表单验证

    一.用前必备官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassist ...

  9. jquery.validate.js 表单验证简单用法

    引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...

随机推荐

  1. android开发关于popupwindow显示关闭的笔记

    一.方法一: popupWindow.setFocusable(false); //这样popupWindow无法获得焦点,无法处理popupWindow中的事件 设置MainActivity的onT ...

  2. python setup.py install 失败

    由于curl证书太老,所以无法找到一些对应的版本. 如下更新证书即可: curl http://curl.haxx.se/ca/cacert.pem > /etc/pki/tls/certs/c ...

  3. Cocos2dx-截屏并设置图片尺寸

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=522 前几天添加微信图片分享的时 ...

  4. Delimiter must not be alphanumeric or backslash 问题及解决

    Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in 正则表达 ...

  5. chrome 在home下生成 libpeerconnection.log

    chrome 在home下生成 libpeerconnection.log,比较烦恼. google了下,可以有方法绕过去,如下. /opt/google/chrome/google-chrome 找 ...

  6. Spring InitializingBean and DisposableBean example

    In Spring, InitializingBean and DisposableBean are two marker interfaces, a useful way for Spring to ...

  7. [iOS 多线程 & 网络 - 2.6] - 使用POST上传JSON数据 & 多值参数

    A.上传JSON 1.思路: 必须使用POST方法才能上传大量JSON数据 设置请求头:设置Content-Type 设置请求体,JSON实际相当于字典,可以用NSDictionary NSJSONS ...

  8. C#中Internal class与静态类说明

    C#中的internal访问修饰符表示 访问仅限于当前程序集 但是注意,internal修饰符修饰的类中,可以有public的成员变量和成员方法等 Static 关键字作为修饰符可以用于类.方法和成员 ...

  9. HDU 5723 Abandoned country (最小生成树+dfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5723 n个村庄m条双向路,从中要选一些路重建使得村庄直接或间接相连且花费最少,这个问题就是很明显的求最 ...

  10. CodeForces 589I Lottery (暴力,水题)

    题意:给定 n 和 k,然后是 n 个数,表示1-k的一个值,问你修改最少的数,使得所有的1-k的数目都等于n/k. 析:水题,只要用每个数减去n/k,然后取模,加起来除以2,就ok了. 代码如下: ...