zoukankan      html  css  js  c++  java
  • jQuery Validate【强大的表单验证】

    一、引入菜鸟教程提供的 1.14.0 版本下载地址:http://static.runoob.com/download/jquery-validation-1.14.0.zip

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

      

    二、默认规则

    序号规则描述
    1 required:true 必须输入的字段。
    2 remote:"check.php" 使用 ajax 方法调用 check.php 验证输入值。
    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: 必须输入合法的信用卡号。
    10 equalTo:"#field" 输入值必须和 #field 相同。
    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。

    三、提示内容&汉化的引入

    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>
    

      

    四、示例

    ①写在DOM里

    <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.js"></script>
    <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script>
    <script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script>
    <script>
    $.validator.setDefaults({
        submitHandler: function() {
          alert("提交事件!");
        }
    });
    $().ready(function() {
        $("#commentForm").validate();
    });
    </script>
    
    <form class="cmxform" id="commentForm" method="get" action="">
      <fieldset>
        <legend>输入您的名字,邮箱,URL,备注。</legend>
        <p>
          <label for="cname">Name (必需, 最小两个字母)</label>
          <input id="cname" name="name" minlength="2" type="text" required>
        </p>
        <p>
          <label for="cemail">E-Mail (必需)</label>
          <input id="cemail" type="email" name="email" required>
        </p>
        <p>
          <label for="curl">URL (可选)</label>
          <input id="curl" type="url" name="url">
        </p>
        <p>
          <label for="ccomment">备注 (必需)</label>
          <textarea id="ccomment" name="comment" required></textarea>
        </p>
        <p>
          <input class="submit" type="submit" value="Submit">
        </p>
      </fieldset>
    </form>
    

      

    ②写在JS里


    先定义

    $().ready(function() {
    // 在键盘按下并释放及提交后验证提交表单
      $("#signupForm").validate({
        rules: {
          firstname: "required",
          lastname: "required",
          username: {
            required: true,
            minlength: 2
          },
          password: {
            required: true,
            minlength: 5
          },
          confirm_password: {
            required: true,
            minlength: 5,
            equalTo: "#password"
          },
          email: {
            required: true,
            email: true
          },
          topic: {
            required: "#newsletter:checked",
            minlength: 2
          },
          agree: "required"
        },
        messages: {
          firstname: "请输入您的名字",
          lastname: "请输入您的姓氏",
          username: {
            required: "请输入用户名",
            minlength: "用户名必需由两个字母组成"
          },
          password: {
            required: "请输入密码",
            minlength: "密码长度不能小于 5 个字母"
          },
          confirm_password: {
            required: "请输入密码",
            minlength: "密码长度不能小于 5 个字母",
            equalTo: "两次密码输入不一致"
          },
          email: "请输入一个正确的邮箱",
          agree: "请接受我们的声明",
          topic: "请选择两个主题"
        }
    });
    

      


    在以name的方式拿来用

    <form class="cmxform" id="signupForm" method="get" action="">
      <fieldset>
        <legend>验证完整的表单</legend>
        <p>
          <label for="firstname">名字</label>
          <input id="firstname" name="firstname" type="text">
        </p>
        <p>
          <label for="lastname">姓氏</label>
          <input id="lastname" name="lastname" type="text">
        </p>
        <p>
          <label for="username">用户名</label>
          <input id="username" name="username" type="text">
        </p>
        <p>
          <label for="password">密码</label>
          <input id="password" name="password" type="password">
        </p>
        <p>
          <label for="confirm_password">验证密码</label>
          <input id="confirm_password" name="confirm_password" type="password">
        </p>
        <p>
          <label for="email">Email</label>
          <input id="email" name="email" type="email">
        </p>
        <p>
          <label for="agree">请同意我们的声明</label>
          <input type="checkbox" class="checkbox" id="agree" name="agree">
        </p>
        <p>
          <label for="newsletter">我乐意接收新信息</label>
          <input type="checkbox" class="checkbox" id="newsletter" name="newsletter">
        </p>
        <fieldset id="newsletter_topics">
          <legend>主题 (至少选择两个) - 注意:如果没有勾选“我乐意接收新信息”以下选项会隐藏,但我们这里作为演示让它可见</legend>
          <label for="topic_marketflash">
            <input type="checkbox" id="topic_marketflash" value="marketflash" name="topic">Marketflash
          </label>
          <label for="topic_fuzz">
            <input type="checkbox" id="topic_fuzz" value="fuzz" name="topic">Latest fuzz
          </label>
          <label for="topic_digester">
            <input type="checkbox" id="topic_digester" value="digester" name="topic">Mailing list digester
          </label>
          <label for="topic" class="error">Please select at least two topics you'd like to receive.</label>
        </fieldset>
        <p>
          <input class="submit" type="submit" value="提交">
        </p>
      </fieldset>
    </form>
    

      

  • 相关阅读:
    python psutil监控系统资源【转】
    nc用法【转】
    python enumerate用法总结【转】
    find查找时排除目录及文件
    python自动安装mysql5.7【转】
    Nginx报错:upstream timed out (110: Connection timed out)和client intended to send too large body【转】
    linux压缩日志并删除原始文件
    mysql5.7主从复制--在线变更复制类型【转】
    MySQL 5.7在线设置复制过滤【转】
    Linux dd命令中dsync与fdatasync的区别【转】
  • 原文地址:https://www.cnblogs.com/cjt-cn/p/5783856.html
Copyright © 2011-2022 走看看