jquery.validate使用(基本篇)

2021/9/27 jQuery

该使用说明基于ruoyi框架,很多引用不会做详细说明。

# 一、依赖引用

# 二、api说明

官网说明:https://jqueryvalidation.org/documentation/ (opens new window)

常用验证:

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

# 三、自定义验证

官网说明:https://jqueryvalidation.org/jQuery.validator.addMethod/ (opens new window)

官网demo:

jQuery.validator.addMethod("domain", function(value, element) {
  return this.optional(element) || /^http:\/\/mycorporatedomain.com/.test(value);
}, "Please specify the correct domain for your documents");
1
2
3

自定义demo:
验证数据是否符合某个条件,否则去后台验证数据是否合法,代码高亮部分是需要注意的地方

 












 

 




 






 



$.validator.addMethod("myValidator", function(value, element) {
    // 验证value格式是否正确
    if(!isPhone(value)){
        // 如果格式错误直接返回验证失败
        return false;
    }
    else{
        // 调用远程接口判断数据是否已经存在,如果存在则失败
        let result = false;         //默认失败
        $.ajax({
            url: "/myValidate",
            type: "post",
            dataType: "json",
            async: false,           // 设置同步,否则ajax校验不生效
            data: {
                phone : value
            },
            success: function(res) {
                if (res.code == 0){
                    // 如果成功,则设置结果为true
                    result = true;   // 不能直接return,直接return只作用到当前success函数,不是真个验证方法
                }
            },
            error:function () {
                $.modal.msgError("系统出现错误!");
            }
        });
        return result;
    }
}, "myValiator验证失败");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 四,一个demo

<body>
<div id="page1" data-role="page">
    <div data-role="header">
        <h1>Welcome</h1>
    </div>
    <div data-role="content">
        <form method="GET">
            <div data-role="fieldcontain">
                <label for="email">Email:</label>
                <input type="email" name="email" id="email">
            </div>
            <div data-role="fieldcontain">
                <label for="password">Password:</label>
                <input type="password" name="password" id="password">
            </div>
            <input data-role="submit" type="submit" value="Login">
        </form>
    </div>
</div>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
留言:
    更新日期: 2022/2/8 下午11:10:51