Jquery Validate 自定义验证

本文介绍了如何使用Jquery Validate插件进行表单验证,包括自定义验证规则和错误显示样式。通过示例代码展示了如何设置验证规则、自定义手机号验证方法以及使用tooltip显示错误信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为bootstrap validate表单验证的提交必须是submit类型的button,不能修改,所以选择了Jquery的form表单验证

function validForm(){
        return $("#applyForm").validate({ //这里加上return之后对表单提交没有要求了(不管是submit按钮还是button按钮都可以)
        onfocusout: function(element) { $(element).valid(); },  /*失去焦点时验证*/
            rules: {
                name: {
                    required: true,
                    maxlength: 32
                },
                birth: {
                    required: true,
                    date: true,
                    checkTime: true
                },
                phone: {
                    required: true,
                    isMobile: true
                },
                email: {
                    required: true,
                    email: true
                    /*邮箱验证*/
                }
            },
            messages: {
               name: "请输入您的姓名", 
                birth: "请输入您的出生日期", 
               email: "请输入有效的邮箱",
               arrivalTime: "请输入您的来校时间",
              phone: ""
           }
        });
    }

 

注意:rules里面的每一项对应的是form表单中每一个输入框的name,不是id

可以自定义验证方法

//手机号验证
            jQuery.validator.addMethod("isMobile", function(value, element) {
                var length = value.length;
                var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
                return this.optional(element) || (length == 11 && mobile.test(value));
            }, "请正确填写您的手机号码");

可以对form表单中的某一个input输入框进行验证

$("#phone").valid();验证成功返回true,否则返回false

 

自定义错误显示样式,我用的是toolTip的方式

$.validator.setDefaults({
        submitHandler: function() {
            $("form").submit();
        },
        showErrors: function(map, list) {
            // there's probably a way to simplify this
            var focussed = document.activeElement;
            if (focussed && $(focussed).is("input, textarea")) {
                $(this.currentForm).tooltip("close", {
                    currentTarget: focussed
                }, true)
            }
            this.currentElements.removeAttr("title").removeClass("ui-state-highlight");
            $.each(list, function(index, error) {
                $(error.element).attr("title", error.message).addClass("ui-state-highlight");
            });
            if (focussed && $(focussed).is("input, textarea")) {
                $(this.currentForm).tooltip("open", {
                    target: focussed
                });
            }
        }
    });

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值