【问题标题】:jQuery validation plugin not working for checking special charactersjQuery验证插件不适用于检查特殊字符
【发布时间】:2014-06-29 15:08:38
【问题描述】:

我正在尝试添加一种方法来检查special characters,同时它应该allow spaces between words

jQuery.validator.addMethod("specialChrs",function(element, value) {
        return this.optional(element) || /^[A-Za-z\d= ]+$/.test(value)
}, "Special Characters not permitted");

下面是我的signup 表单。

$("#signupform").validate({

    rules: {
        name: {
            required: true,
            minlength: 3,
            specialChrs: true
        }
    },

    messages: {
        name: {
            required: "name is required",
            minlength: "name must be at least 3 characters"
        }
    }

该方法被调用,但它不检查定义的正则表达式,也有人可以在这里解释一下return this.optional(element) 是什么。

【问题讨论】:

    标签: jquery regex


    【解决方案1】:

    如果元素是可选的,this.optinal(element) 返回 true。

        jQuery.validator.addMethod("specialChrs", function (element, value) {
                return new RegExp('^[a-zA-Z0-9 ]+$').test(value)
            }, "Special Characters not permitted");
    
    
    $("#signupform").validate({
    
        rules: {
            name: {
                required: true,
                minlength: 3,
                specialChrs: true
            }
        },
    
        messages: {
            name: {
                required: "name is required",
                minlength: "name must be at least 3 characters",
                specialChrs:"Special Characters not permitted",
    
            }
        }
    

    【讨论】:

    • 元素在某种意义上是可选的,你能再解释一下或者举个例子吗。
    • this.optional(element) 的重点是在元素为空且不需要时立即返回 true。详情见以下链接:stackoverflow.com/questions/13093971/…
    • this.optional(element) 在这里没有使用,因为这里需要“name”字段
    • 所以如果我设置 required: false,那么 this.optional 会起作用,如果它不为空,对吗?
    • 是的,如果您设置 required:false 并添加 optional(element) ,那么您的验证将失败并显示错误消息
    猜你喜欢
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多