码迷,mamicode.com
首页 > 其他好文 > 详细

表单验证插件

时间:2015-02-02 15:28:22      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

一、Validation插件

Validation拥有如下特点:

1、内置验证规则:拥有必填、数字、E-Mail、URL和信用卡号码等19类内置验证规则。

2、自定义验证规则:可以很方便地自定义验证规则。

3、简单强大得验证信息提示:默认了验证信息提示,并提供自定义覆盖默认提示信息的功能。

4、实时验证:可以通过keyup或blur事件触发验证,而不仅仅在表单提交的时候验证。

jQuery Validation插件的下载地址:http://jqueryvalidation.org/

使用步骤;

1、引用

<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/jquery.validate.js"></script>

2、确定哪个表单需要被验证。

$(function(){
        $("#myForm").validate();  //form的id
    })

3、针对不同的字段,进行验证规则编码,设置字段相应的属性。

技术分享
<form id="myForm" method="get" action="#">
        <fieldset>
            <legend>一个简单的验证带验证提示的评论例子</legend>
            <p>
                <label for="cusername">姓名</label><em>*</em>
                <input id="cusername" name="cusername" size="25" class="required" minlength="2">
                <!--必填字段且最小长度为2-->
            </p>
            <p>
                <label for="cemail">电子邮件</label><em>*</em>
                <input id="cemail" name="cemail" size="25" class="required email">
                <!--必填字段且内容需要符合E-mail格式。-->
            </p>
            <p>
                <label for="curl">网址</label><em>&nbsp;</em>
                <input id="curl" name="curl" size="25" class="url" value="">
                <!--url格式验证-->
            </p>
            <p>
                <label for="ccomment">你的评论</label><em>*</em>
                <textarea id="ccomment" name="comment" cols="22" class="required"></textarea>
            </p>
            <p>
                <input type="submit" value="提交">
            </p>
        </fieldset>
    </form>
View Code

 

技术分享

注意:当用户输入字符时,表单元素就会实时响应验证信息,而不是只在用户单击“提交”按钮后才出现。

二、metadata插件

基于一Validation插件将相关验证写在class比较麻烦,jquery.meatdata.js是一个支持固定格式解析的jQuery插件,Validation将其很好的融合到验证规则编码中。

使用步骤:

1、引用

<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/jquery.validate.js"></script>
<script src="js/jquery.metadata.js"></script>

2、确定哪个表单需要验证

技术分享
$(function () {
        $("#myForm").validate({meta: "validate"});  //form的id
    })
View Code

 

3、使用

<input id="cusername" name="cusername" size="25" class="{validate:{required:true,minlength:2}}">

问题:

1、没有keyup效果。

2、validation的版本不同,无效果。

三、行为与结构的分离(推荐!!

 步骤;

1、在$("#commentForm").validate()方法中增加rules属性。

2、通过每个字段的name属性值来匹配验证规则

3、定义验证规则:例如required:true,email:true,minlength:2等。

技术分享
$(function () {
        $("#myForm").validate({
            rules:{
                cusername:{
                    required:true,
                    minlength:2
                },
                cemail:{
                    required:true,
                    email:true
                },
                curl:"url",
                comment:"required"
            }
        });
    })
View Code

四、自定义验证信息并美化

技术分享
$(function () {
        $("#myForm").validate({
            rules:{
                cusername:{
                    required:true,
                    minlength:2
                },
                cemail:{
                    required:true,
                    email:true
                },
                curl:"url",
                comment:"required"
            },
            messages:{
                cusername:{
                    required:"请输入姓名",
                    minlength:"请至少输入两个字符"
                },
                cemail:{
                    required:"请输入电子邮件",
                    email:"请检查电子邮件的格式"
                },
                curl:{
                    url:"请检查网址的格式"
                },
                comment:{
                    required:"请输入您的评论"
                }
            },
            errorElement:"em",
            success:function(label){
                label.text("")
                        .addClass("success");
            }
        });
    })
View Code
em.error{ background: url(images/unchecked.png) no-repeat 0px 0px; padding-left: 16px;}
        em.success{ background: url(images/checked.png) no-repeat 0px 0px; padding-left: 16px;}

 

技术分享

注意:验证信息还可以通过扩展中文提示。注意版本区别,13.1版本引入没反应

引入<script src="js/jquery.validate.messages_cn.js"></script>

技术分享
jQuery.extend(jQuery.validator.messages, {
        required: "必选字段",
        remote: "请修正该字段",
        email: "请输入正确格式的电子邮件",
        url: "请输入合法的网址",
        date: "请输入合法的日期",
        dateISO: "请输入合法的日期 (ISO).",
        number: "请输入合法的数字",
        digits: "只能输入整数",
        creditcard: "请输入合法的信用卡号",
        equalTo: "请再次输入相同的值",
        accept: "请输入拥有合法后缀名的字符串",
        maxlength: jQuery.format("请输入一个长度最多是 {0} 的字符串"),
        minlength: jQuery.format("请输入一个长度最少是 {0} 的字符串"),
        rangelength: jQuery.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
        range: jQuery.format("请输入一个介于 {0} 和 {1} 之间的值"),
        max: jQuery.format("请输入一个最大为 {0} 的值"),
        min: jQuery.format("请输入一个最小为 {0} 的值")
});
View Code

 

五、自定义验证规则

 

表单验证插件

标签:

原文地址:http://www.cnblogs.com/zhaojieln/p/4267706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!