1. 程式人生 > >Jquery Validate 預設校驗規則、jQuery.validator.addMethod自定義驗證方法---例子

Jquery Validate 預設校驗規則、jQuery.validator.addMethod自定義驗證方法---例子

 

一、Jquery Validate 預設校驗規則

(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

預設提示

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).",
    dateDE: "Bitte geben Sie ein g眉ltiges Datum ein.",
    number: "Please enter a valid number.",
    numberDE: "Bitte geben Sie eine Nummer ein.",
    digits: "Please enter only digits",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    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.validator.addMethod自定義驗證方法

    ---- addMethod(name,method,message)

引數 name 是新增的方法的名字。

引數 method 是一個函式,接收三個引數 (value,element,param) 。value 是元素的值,element 是元素本身,param 是引數。

引數message是提示資訊

下面是例子 

1、html頁面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js校驗</title>
    <script src="../js/jquery-1.11.1.min.js" type="text/javascript"></script>
    <script src="../js/jquery.validate.min.js" type="text/javascript"></script>
    <script src="verificationTest.js" type="text/javascript"></script>
</head>
<body>
    <form id="myform" action="" method="post">
        <table>
            <tr>
                <td>姓名</td>
                <td> <input type="text" id="name" name="name"></td>
            </tr>
            <tr>
                <td>年齡</td>
                <td><input type="text" id="age" name="age"></td>
            </tr>
            <tr>
                <td>賬號</td>
                <td> <input type="text" id="account" name="account"></td>
            </tr>
            <tr>
                <td>手機</td>
                <td> <input type="text" id="mobile" name="mobile"></td>
            </tr>
            <tr>
                <td>電話</td>
                <td> <input type="text" id="phone" name="phone"></td>
            </tr>
            <tr>
                <td>身份證</td>
                <td><input type="text" id="code" name="code"></td>
            </tr>
            <tr>
                <td>型別</td>
                <td><select name="type">
                    <option value="0">請選擇</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                </select></td>
            </tr>
            <tr>
                <td><input type="submit" id="myformSubmit" value="確定"></td>
            </tr>
        </table>
    </form>
</body>
</html>

js頁面


$(function () {

// 手機號碼驗證
    jQuery.validator.addMethod("mobile", function(value, element) {
        var length = value.length;
        var mobile =  /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/
        return this.optional(element) || (length == 11 && mobile.test(value));
    }, "手機號碼格式錯誤");

// 電話號碼驗證
    jQuery.validator.addMethod("phone", function(value, element) {
        var tel = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/;
        return this.optional(element) || (tel.test(value));
    }, "電話號碼格式錯誤");

// 字母和數字的驗證
    jQuery.validator.addMethod("charAndNum", function(value, element) {
        var chrnum = /^([a-zA-Z0-9]+)$/;
        return this.optional(element) || (chrnum.test(value));
    }, "只能輸入數字和字母(字元A-Z, a-z, 0-9)");

// 中文的驗證
    jQuery.validator.addMethod("chinese", function(value, element) {
        var chinese = /^[\u4e00-\u9fa5]+$/;
        return this.optional(element) || (chinese.test(value));
    }, "只能輸入中文");

// 下拉框驗證
    $.validator.addMethod("selectNone", function(value, element,param) {
        return value != param[0];
    }, "必須選擇一項");

//整數位,小數位驗證
    jQuery.validator.addMethod("decimal", function(value, element, param) {
        return this.optional(element) || new RegExp("^-?\\d{1," + (param[0] != null ? param[0] : "") + "}" + (param[1] != null ? (param[1] > 0 ? "(\\.\\d{1," + param[1] + "})?$" : "$") : "(\\.\\d+)?$")).test(value);
    }, $.validator.format("內容輸入錯誤或者格式錯誤:整數位最多{0}位,小數位最多{1}位"));

// 驗證值必須大於特定值(不能等於)
    jQuery.validator.addMethod("gt", function(value, element, param) {
        return value > param[0];
    }, $.validator.format("輸入值必須大於 {0}!"));


    $("#myform").validate({
        rules: {
            name: { required: true, rangelength:[1,10] ,chinese:true},
            age:{ required: true,decimal:[2,2]},
            account : { required: true,charAndNum:true },
            mobile : {required: true,mobile:true},
            phone : {required: true,phone:true},
            code : {required: true ,gt:[10]},
            type : {required: true ,selectNone:[0]}

        },
        messages: {
            name: { required: '請填寫真實姓名', rangelength : '請輸入1-10個字' },
            age:{ required: '請填寫手機號' },
            account : {required: '請填寫賬號'},
            mobile : {required: '請填寫手機號' },
            phone : {required: '請填寫電話號' },
            code : {required: '請填寫身份證'},
            type : {required: '請選擇型別'}
        }
    });
});
$("#myform").click(function () {
   //驗證是否通過
    if (!$("#myform").valid()) {
        return;
    }
    //其他程式碼
});

效果

比較實用,網上查了查,自己整理試了一下,記錄下來,以便不時之需