文档章节

jquery强大的验证控件jquery-validate

mrmusic
 mrmusic
发布于 2016/04/20 23:44
字数 1075
阅读 112
收藏 12

一、介绍和规则

一般在做开发时候,有很多方式要对前端提交的表单进行验证,有很多都是自己写的,不过学习了jquer-validate这个工具,感觉用起来确实方便。

首先在对应的页面引入我们jquery和所需要空间的js

<script src="js/jquery.js"></script>
<script src="js/jquery.validate.js"></script>

默认的验证规则:

(1)、required:true               必输字段
(2)、remote:"remote-valid.jsp"   使用ajax方法调用remote-valid.jsp验证输入值
(3)、email:true                  必须输入正确格式的电子邮件
(4)、url:true                    必须输入正确格式的网址
(5)、date:true                   必须输入正确格式的日期,日期校验ie6出错,慎用
(6)、dateISO:true                必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)、number:true                 必须输入合法的数字(负数,小数)
(8)、digits:true                 必须输入整数
(9)、creditcard:true             必须输入合法的信用卡号
(10)、equalTo:"#password"        输入值必须和#password相同
(11)、accept:                    输入拥有合法后缀名的字符串(上传文件的后缀)
(12)、maxlength:5                输入长度最多是5的字符串(汉字算一个字符)
(13)、minlength:10               输入长度最小是10的字符串(汉字算一个字符)
(14)、rangelength:[5,10]         输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)、range:[5,10]               输入值必须介于 5 和 10 之间
(16)、max:5                      输入值不能大于5
(17)、min:10                     输入值不能小于10

另外对于radio和checkbox、select的需要在对应的input或者select里面加上class="{"对应的验证方式"}"

一般来说这三个在项目中用的比较多的是必选或者必填就是 “required:true”;

关于异步验证,说白了就是使用ajax来进行验证:

需要使用:remote

具体规则:

remote: {
    url: "url地址",     //后台处理程序
    type: "post",               //数据发送方式
    dataType: "json",           //接受数据格式   
    data: {                     //要传递的数据
        username: function() {            return $("#name").val();
        }
    }
}

远程地址只能输出 "true" 或 "false",不能有其他输出。

至于为什么远程地址只能输出"true" 或 "false",可以这样理解,这个工具的作用就是验证,也就是 "是"或"非",个人用的ajax验证比较多的就是去验证数据库名称是否重复

其实使用方式也是很简单的

在rules里面写上需要验证的东西,就像下面input框为必填,不能为空。和input框的长度最小为4

messages:里面填写验证失败需要提示的信息内容。也可以不在messages里面写,默认的提示是英文,也可以自己只做一个语言包进行替换,我在开发时候直接在下面写的~.~

rules:{    
        name:{
            required:true,
            minlength:4
            }
        }
 messages:{
        name:{
            required:"请输入您的名字",
            minlength:"用户名必须4个字母"
            }
          }

二、例子

下面是自己写的一个简单的例子:

<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery-validation</title>
</head>
<style>
.error{
color:#F00;    
}
</style>
<script src="js/jquery.js"></script>
<script src="js/jquery.validate.js"></script>
<body>
    <form method="post" action="#" id="the_from" class="the-from">
    <p>
    <label>姓名</label>
    <input id="cname" name="name" type="text" />
    </p>
    <p>
    <label>邮箱</label>
    <input id="cemail" name="email" type="text" />
    </p>
        <label>情感状态</label>
    <select class="{required:true}" id="select" name="select">
    <option value="">请选择</option>
    <option value="1">单身狗</option>
    <option value="0">虐狗的</option>
    </select>
    </p>

    <p>
    <label>备注</label>
    <textarea id="comment" name="comment"></textarea>
    </p>
    <p>

     <p>
      <input id="submit" type="submit" value="提交">
    </p>
    
    </form>
</body>
</html>
<script>
$.validator.setDefaults({
    submitHandler: function() {
   $('#the_from').submit();
    }
});
$().ready(function() {
    $("#the_from").validate({
        rules:{    
        name:{
            required:true,
            minlength:4,
            remote:{
                    url:"ajax.php",
                    type:"post",
                    dataType:"json",
                    data:{
                        id:function(){return "1";},
                        val:function(){return $("#cname").val();}
                    }
                } 
            },
        email:{
            required:true,
            email: true
            },
        comment:{
            required:true
            },
        select:{
            required:true
            }
        },
        messages:{
            name:{
            required:"请输入您的名字",
            minlength:"用户名必须4个字母",
        remote:"ajax说名称不能重复"        
                },
        email:{
            required:"邮箱不能为空",
            email: "请输入正确的邮箱"
            },
        comment:{
            required:"请填写您的备注"
            },
        select:{
            required:"请填写感情状态"
            }
            
        }    
        });
});
</script>

对应的ajax验证代码(ajax.php):

<?php
$id=$_POST['id'];
$val=$_POST['val'];
/*
 *一般在开发过程中用的时候都是去验证数据库比较多
 *先假如我们的业务规则名字是不能是123456的
 */
 $result="123456";
 if($val==$result){
     exit("false");
 }else{
     exit("true");
 }


© 著作权归作者所有

mrmusic
粉丝 11
博文 34
码字总数 23901
作品 0
数据库管理员
私信 提问
自定义jQuery插件Step by Step

自定义jQuery插件Step by Step 1.1.1 摘要 随着前端和后端技术的分离,各大互联网公司对于Mobile First理念都是趋之若鹜的,为了解决网页在不同移动设备上的显示效果,其中一个解决方案就是R...

wolf_su
2013/07/04
236
0
10 款高质量的 jQuery 表单验证插件

本文整理了几款高质量的jQuery表单验证插件,可以节约web开发者的时间。希望对你有帮助! 列表如下: 1) A Jquery Inline Form Validation 2) Form Validation Using Jquery 3) Using Jquery...

小卒过河
2011/06/28
110.4K
18
如何结合Jquery 的validate 和 ajax submit进行工作.

我刚接触Jquery,需要修改公司的重做公司的一个系统,准备用Jquery做JS框架,遇到一个问题. 我们知道Jquery 的jquery.validate.js的这个函数可以帮我做表单的验证,用于帮定错误信息到各个属性,...

wjyy
2013/05/23
13.2K
6
收藏几个漂亮的login页面验证

大气带JS表单验证功能的注册页面模板1 http://www.js-css.cn/a/css/template/reglogin/2014/0721/1272.html 大气带JS表单验证功能的登录页面模板2 http://www.js-css.cn/a/css/template/reg...

k_k_anna
2015/03/03
332
0
12 个 jQuery 的表单验证教程和插件

jQuery Form Validation 使用jQuery进行快速简单的表单验证教程 Advanced jQuery form validation jQuery plugin: Validation A jQuery inline form validation Adding Form Validation to ......

红薯
2011/11/21
4K
3

没有更多内容

加载失败,请刷新页面

加载更多

The server time zone value 'EDT' is unrecognized or represents more than one time zone.

2019-10-14 18:07:43.714 ERROR 74363 --- [Druid-ConnectionPool-Create-1855026648] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://10.30......

yizhichao
20分钟前
7
0
html加载顺序以及影响页面二次渲染额的因素

本文转载于:专业的前端网站➱html加载顺序以及影响页面二次渲染额的因素 浏览器请求发往服务器以后,返回HTML页面,页面内容开始渲染,具体的执行顺序为: 1. 浏览器开始载入html代码,发现<...

前端老手
22分钟前
7
0
BeginnersBook JSP、JSTL、Servlet 教程

来源:ApacheCN BeginnersBook 翻译项目 译者:飞龙 协议:CC BY-NC-SA 4.0 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并...

ApacheCN_飞龙
34分钟前
5
0
Handler和内部类的正确用法

PS:本文摘抄自《Android高级进阶》,仅供学习使用   Android代码中涉及线程间通信的地方经常会使用Handler,典型的代码结构如下。 1 2 3 4 5 6 7 8 9 public class HandlerActivity exten...

shzwork
35分钟前
7
0
centos 7 安装mysql5.6rpm格式

centos 7 安装mysql5.6rpm格式 1查看是否安装了mysql rpm -qa|grep -i mysql 如果安装了请卸载:rpm -e --nodeps MySQL... 2、没有安装则进行如下操作 下载mysql rpm tar包 https://dev.mysq...

Archer99
35分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部