zoukankan      html  css  js  c++  java
  • jQuery.Validate表单验证插件

    教程地址

    地址在这:http://www.runoob.com/jquery/jquery-plugin-validate.html,比这篇说的要详细,此篇只是自己初学的笔记,有更多的方法看教程比较好.

    插件地址

    自己打包了使用此功能必须的插件:点我下载

    默认校验规则

    规则 描述
    required:true 必须输入的字段
    remote:'check.php' 使用ajax方式调用check.php验证输入值
    email:true 必须输入正确格式的邮箱地址
    url:true 必须输入正确格式的网址
    date:true 必须输入正确格式的日期。日期校验 ie6 出错,慎用。
    dateISO:true 必须输入正确格式的日期(ISO),例如:2009-02-16,1998/09/12,只验证格式,不验证有效性
    number:true 必须输入合法的数字(负数,小数)
    digits:true 必须输入正数
    creditcard: 必须输入合法的信用卡卡号
    equalTo:"#field" 输入值必须和 #field 相同
    accept: 输入拥有合法后缀名的字符串(上传文件的后缀)
    maxlength:5 输入长度最多为5的字符串(汉字算1个字符串)
    minlength:5 输入长度最少为5的字符串
    rangelength:[5:10] 输入长度必须为5-10个字符串
    range[5:10] 输入值必须为5-10之间
    max:5 输入值最大不能大于5
    min:5 输入值最小不能小于5

    默认提示

    messages: {
    	required: "This field is required.",
    	remote: "Please fix this field.",
    	email: "Please enter a valid email address.",
    	url: "Please enter a valid URL.",
    	date: "Please enter a valid date.",
    	dateISO: "Please enter a valid date ( ISO ).",
    	number: "Please enter a valid number.",
    	digits: "Please enter only digits.",
    	creditcard: "Please enter a valid credit card number.",
    	equalTo: "Please enter the same value again.",
    	maxlength: $.validator.format( "Please enter no more than {0} characters." ),
    	minlength: $.validator.format( "Please enter at least {0} characters." ),
    	rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ),
    	range: $.validator.format( "Please enter a value between {0} and {1}." ),
    	max: $.validator.format( "Please enter a value less than or equal to {0}." ),
    	min: $.validator.format( "Please enter a value greater than or equal to {0}." )
    }
    

    jQuery Validate提供了中文信息提示包,位于下载包的 dist/localization/messages_zh.js,内容如下:

    (function( factory ) {
    	if ( typeof define === "function" && define.amd ) {
    		define( ["jquery", "../jquery.validate"], factory );
    	} else {
    		factory( jQuery );
    	}
    }(function( $ ) {
    
    /*
     * Translated default messages for the jQuery validation plugin.
     * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
     */
    $.extend($.validator.messages, {
    	required: "这是必填字段",
    	remote: "请修正此字段",
    	email: "请输入有效的电子邮件地址",
    	url: "请输入有效的网址",
    	date: "请输入有效的日期",
    	dateISO: "请输入有效的日期 (YYYY-MM-DD)",
    	number: "请输入有效的数字",
    	digits: "只能输入数字",
    	creditcard: "请输入有效的信用卡号码",
    	equalTo: "你的输入不相同",
    	extension: "请输入有效的后缀",
    	maxlength: $.validator.format("最多可以输入 {0} 个字符"),
    	minlength: $.validator.format("最少要输入 {0} 个字符"),
    	rangelength: $.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),
    	range: $.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),
    	max: $.validator.format("请输入不大于 {0} 的数值"),
    	min: $.validator.format("请输入不小于 {0} 的数值")
    });
    
    }));
    

    你可以将该本地化信息文件 dist/localization/messages_zh.js 引入到页面:

    <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script>
    

    使用方式

    注意事项

    1. 标签中必须有name的属性,是靠name取值的
    2. 加载时,必须jQuery在最上面,会报错
    3. 字体的颜色设置css时,需要.error命名
    4. 需要jQuery1.11版本的
    5. 重置表单状态,需要使用button按钮
    6. 清空表单使用<input type='reset' />实现

    例子

    直接就写到一个例子当中了,注意看注释吧:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test2</title>
        <style>
            /* 错误信息CSS样式,名称为.error*/
            .error{
                color: red;
            }
        </style>
    </head>
    <body>
    
    	<form action="/test2/" class="testform" id="testform">
    		<p>
    		<label for="firstname">姓氏</label>
    		<input type="text" name="firstname" id="firstname">
    		</p>
    		<p>
    		<label for="lastname">名字</label>
    		<input type="text" name="lastname" id="lastname">
    		</p>
    		<p>
    		<label for="password">密码</label>
    		<input type="password"  name="password" id="password">
    		</p>
    		<p>
    		<label for="confirm_password">确认密码</label>
    		<input type="password" name="confirm_password" >
    		</p>
    {#        <p><input type="password" name="xxx"></p>#}
    		<p><label for="email">邮箱:</label><input type="text" name="email"></p>
    		<p><label for="comment">备注:</label><textarea name="comment" id="comment" cols="30" rows="8"></textarea></p>
            <p><input type="submit" value="提交"></p>
    
    {#        /* 清空表单可以直接使用reset的button */#}
            <p><input type="reset"></p>
    
    {#        重置表单状态#}
            <p><input type="button" value="清空表单" id="reset"></p>
    	</form>
    
    {#    ## jqure文件要首先导入#}
        <script src="/static/jquery.js"></script>
    	<script src='/static/jquery.validate.js'></script>
    	<script src='/static/messages_zh.js'></script>
    	<script>
    
    		$().ready(function () {
                var validator = $("#testform").validate({
                    rules:{
                        firstname:{required:true,minlength:5},
                        lastname:{required:true,minlength:5},
                        password:{required:true,minlength:6},
                        confirm_password:{required:true,minlength:6,equalTo:"#password"},
                        email:{required:true,email:true}
                    },
                    messages:{
                        firstname:{required:'必须输入姓氏',minlength:'不能小于5个字符'},
                        lastname:{required:'必须输入名字',minlength:'不能小于5个字符'},
                        password:{required:'请输入密码',minlength:'密码至少6位'},
                        confirm_password:{required:'请确认密码',minlength:'密码至少6位',equalTo:'两次输入的密码不匹配'},
                        email:'请输入一个正确的邮箱地址'
                    },
    
                    errorPlacement: function(error, element) {
                        // 更改错误提示位置在输入框下面
                        // var p = $("<p />").append(error);
                        // p.appendTo(element.parent());
    
                        // 位置默认在输入框右侧
                        error.appendTo(element.parent());
                    },
    
                    submitHandler:function(form) {
                        var firstname = $('#firstname').val();
                        $.ajax({
                            url:'/test2/',
                            type:'POST',
                            dataType:'json',
                            data:{'firstname':firstname},
                            success:function (data) {
                                if(data.status){
                                    alert(data.message)
                                }else{
                                    alert('failure')
                                }
                            }
    
                        })
    
                    }
    
                });
    
                    // 需要将input的type设置为button,重置表单为提交前的状态
                    $('#reset').click(function () {
                        validator.resetForm();
                    });
    
            });
            
    
    	</script>
    
    </body>
    </html>
    
  • 相关阅读:
    51nod1370 排列与操作
    2019-11-20-Github-给仓库上传-NuGet-库
    2019-11-20-Github-给仓库上传-NuGet-库
    2019-6-5-WPF-隐藏系统窗口菜单
    2019-6-5-WPF-隐藏系统窗口菜单
    2019-8-31-AutoHotKey-用打码的快捷键
    2019-8-31-AutoHotKey-用打码的快捷键
    2019-4-10-win10-uwp-自定义标记扩展
    2019-4-10-win10-uwp-自定义标记扩展
    2018-9-3-C#-const-和-readonly-有什么区别
  • 原文地址:https://www.cnblogs.com/ccorz/p/5919472.html
Copyright © 2011-2022 走看看