jQuery插件Validation快速完成表单验证的方式


Posted in Javascript onJuly 28, 2016

JQuery的Validation插件可以到http://plugins.jquery.com/上去下载。今天来分享一下,关于这个插件的使用。

简易使用

这第一种方式可谓是傻瓜式的使用,我们只需要按照validation定义好的规则就可以了。
 •首先引入JQuery库和Validation插件: 
<script type="text/javascript" src="jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="jquery.validate.min.js"></script>
 •然后是打开验证开关: 

$(function(){
 $("#form_id").validate();
});
// 或者
$(document).ready(function(){
 $("#form_id").validate();
});

 •validation的build_in验证规则有:
◦class = “required”: 表明表单中该字段为必选的
 ◦class = "required email" 表明在表单中该字段为必须存在的,而且是符合email的规范格式
 ◦class = "url"表明在表单中该字段需要满足url的匹配模式
 ◦minlength = "6" 表明在表单中该字段的长度最小为6位

 案例展示:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>Validation for form demo</title>
 <script type="text/javascript" src="jquery-2.2.4.min.js"></script>
 <script type="text/javascript" src="jquery.validate.min.js"></script>
 <style>
 em {
  font-weight: bold;
  vertical-align: top;
  color: red;
  float: right;
 }

 label {
  width:10em;
  padding: 7px;
 }
 .container {
  width: 370px;
  height: auto;
  background-color: silver;
 }
 </style>
</head>
<body>
 <div align="center" class="container">
 <form id="vform" method="post" action="#">
  <fieldset>
  <legend>使用JQuery插件validation来实现表单验证</legend>
  <p>
   <label for="username">姓名:</label>
   <input id="username" name="username" class="required" minlength="2"> <em>*</em>

  </p>
  <p>
   <label for="email">邮件:</label>
   <input id="email" name="email" class="required email" > <em>*</em>
  </p>
  <p>
   <label for="url">网址:</label>
   <input id="url" name="url" class="url" ></p>
  <p>
   <label for="comment">评论:</label>
   <textarea id="comment" name="comment" class="required"></textarea>
   <em>*</em>
  </p>
  <p><input type="submit" name="submit"></p>
  </fieldset>
 </form>
 </div>

<script>
 // $(function(){
 // $("#vform").validation();
 // });
 $(document).ready(function(){
 $("#vform").validate();
 });

</script>
</body>
</html>

验证规则全写到Class中

和简易使用不同的是,这种方式使用pure的class来进行控制。但是我们需要引入一个新的插件jquery.metadate.js。实现的功能就是帮助用户将所有的与验证数据相关的信息写到class属性中,方便管理。

我们可以通过以下几步来实现这一需求。
 •引入一个新的插件jquery.metadata.js 
<script src="jquery.metadata.js"></script>
 •改变调用验证表单的开关: 

$(function(){
 $("#form_id").validate();//去掉这行代码,修改成下面的
 $("#form_id").validate({meta:"validate"});
});

 •将验证信息写到class属性中。详见下面的代码。

<div align="center" class="container">
 <form id="vform" method="post" action="#">
  <fieldset>
  <legend>使用JQuery插件validation来实现表单验证</legend>
  <p>
   <label for="username">姓名:</label>
   <input id="username" name="username" class="{validate: { required : true, minlength : 2 }}" > <em>*</em>

  </p>
  <p>
   <label for="email">邮件:</label>
   <input id="email" name="email" class="{validate: { required :true,email :true}}" > <em>*</em>
  </p>
  <p>
   <label for="url">网址:</label>
   <input id="url" name="url" class="{validate: {url :true}}" ></p>
  <p>
   <label for="comment">评论:</label>
   <textarea id="comment" name="comment" class="{validate: {required :true}}"></textarea>
   <em>*</em>
  </p>
  <p><input type="submit" name="submit"></p>
  </fieldset>
 </form>
 </div>

注意: Validate写在class属性的时候,记得要将验证规则使用空格分隔开来。 否则代码不会正常的运行!

还有就是$("#vform").validate({meta:"validate"});中validate这个单词不能随意的更改,否则也是不会生效的。 

通过name属性构建验证规则

下面介绍一种与HTML元素的属性无直接关联,而是通过name属性来关联字段和验证规则的验证写法。

优点: 可以实现行为与结构的分离,便与调试和维护代码;
 •表单代码,去除所有的class验证。当然这并不是说我们不可以给字段添加样式咯。 

<div align="center" class="container">
 <form id="vform" method="post" action="#">
  <fieldset>
  <legend>使用JQuery插件validation来实现表单验证</legend>
  <p>
   <label for="username">姓名:</label>
   <input id="username" name="username" > <em>*</em>

  </p>
  <p>
   <label for="email">邮件:</label>
   <input id="email" name="email" > <em>*</em>
  </p>
  <p>
   <label for="url">网址:</label>
   <input id="url" name="url" ></p>
  <p>
   <label for="comment">评论:</label>
   <textarea id="comment" name="comment" ></textarea>
   <em>*</em>
  </p>
  <p><input type="submit" name="submit"></p>
  </fieldset>
 </form>
 </div>

 •JQuery代码如下: 

<script>
 // $(function(){
 // $("#vform").validation();
 // });

 $(function(){
 $("#vform").validate({
  rules:{
  username: {
   required: true,
   minlength: 6
  },
  email: {
   required: true,
   email: true
  },
  url: "url",
  comment: "required"
  }
 });
 });

</script>

 •注意:使用空格分隔验证字段 

jQuery插件Validation快速完成表单验证的方式

以上就是关于JQuery插件Validation的基础使用了。

国际化之中文化
 •首先引入一个中文的信息验证库,这个我们可以在下载好的validation的lib包下找到。 
<script src="messages_zh.js"></script>
 •第二步就是在验证规则处添加message字段,然后输入自定义的中文信息。如下:

<script>
 // $(function(){
 // $("#vform").validation();
 // });

 $(function(){
 $("#vform").validate({
  rules:{
  username: {
   required: true,
   minlength: 6,
   messages: {
   required: '请输入姓名',
   minlength: '请至少输入6个字符'
   }
  },
  email: {
   required: true,
   email: true,
   messages: {
   required: '请输入邮箱',
   email: '请检查您的邮箱格式!'
   }
  },
  url: {
   url: true,
   messages: {
   url: '请检查网址的格式!'
   }
  },
  comment: {
   required: true,
   messages: {
   required: '请输入评论!',
   }
  }
  }
 });
 });

</script>

不知道怎么回事,我这段代码没有显示中文提示,大家发现了错误在哪里了吗?

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
css样式标签和js语法属性区别
Nov 06 Javascript
js 验证身份证信息有效性
Mar 28 Javascript
基于Bootstrap3表格插件和分页插件实例详解
May 17 Javascript
jQuery使用经验小技巧(推荐)
May 31 Javascript
javascript中获取class的简单实现
Jul 12 Javascript
bootstrap监听滚动实现头部跟随滚动
Nov 08 Javascript
Vue异步组件使用详解
Apr 08 Javascript
浅谈JS中的反柯里化( uncurrying)
Aug 17 Javascript
JavaScript实现的反序列化json字符串操作示例
Jul 18 Javascript
JS如何在不同平台实现多语言方式
Jul 16 Javascript
js实现鼠标点击飘爱心效果
Aug 19 Javascript
JavaScript实现前端倒计时效果
Feb 09 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 #Javascript
AngularJS 模块详解及简单实例
Jul 28 #Javascript
jQuery制作网页版选项卡
Jul 28 #Javascript
AngularJS 中的事件详解
Jul 28 #Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 #Javascript
zepto与jquery的区别及zepto的不同使用8条小结
Jul 28 #Javascript
浅谈js中调用函数时加不加括号的问题
Jul 28 #Javascript
You might like
php中的时间显示
2007/01/18 PHP
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
js鼠标跟随运动效果
2017/03/11 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
Vue 组件封装 并使用 NPM 发布的教程
2018/09/30 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
zooplus波兰:在线宠物店
2019/07/21 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
平面设计的岗位职责
2013/11/08 职场文书
会计学生自我鉴定
2014/02/06 职场文书
小学六年级学生评语
2014/04/22 职场文书
超市开店计划书
2014/04/26 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
单独二胎证明
2015/06/24 职场文书
Python selenium模拟网页点击爬虫交管12123违章数据
2021/05/26 Python
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android
以下牛机,你有几个
2022/04/05 无线电