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 相关文章推荐
JavaScript 常用函数
Dec 30 Javascript
WEB高性能开发之疯狂的HTML压缩
Jun 19 Javascript
js日期时间补零的小例子
Mar 05 Javascript
js操作iframe的一些方法介绍
Jun 25 Javascript
javascript处理表单示例(javascript提交表单)
Apr 28 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
移动设备手势事件库Touch.js使用详解
Aug 18 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
Jul 30 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
thinkphp实现多语言功能(语言包)
2014/03/04 PHP
php检测文件编码的方法示例
2014/04/25 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
微信小程序button组件使用详解
2018/01/31 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
vue 开发之路由配置方法详解
2019/12/02 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python读取键盘输入的2种方法
2015/06/16 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
Django 返回json数据的实现示例
2020/03/05 Python
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
大学生素质拓展活动方案
2014/02/11 职场文书
给全校老师的建议书
2014/03/13 职场文书
公司股东合作协议书
2014/09/14 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
Python 图片添加美颜效果
2022/04/28 Python
Hive日期格式转换方法总结
2022/06/25 数据库