首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery验证器自定义方法

jQuery验证器自定义方法
EN

Stack Overflow用户
提问于 2009-10-28 18:55:10
回答 2查看 1.8K关注 0票数 1

你能看一下这张http://jsbin.com/osolo/吗?

如果你在Min Age中输入一个字母而不是数字,然后在自定义验证方法中使用正则表达式使用jquery验证器提交此验证,这是可行的,但我现在希望使其更具动态性。

在自定义验证方法中,行

代码语言:javascript
运行
复制
var data = $(element).metadata(); 

从被验证的元素中获取元数据,我想要做的是使用

代码语言:javascript
运行
复制
data.validateOptions.regex

作为要测试的正则表达式(我看不出这有什么问题),我能看到的问题是,如果字段没有验证,而不是使用在调用时提供的消息

代码语言:javascript
运行
复制
jQuery.validator.addMethod(name, method, message)

我想用

代码语言:javascript
运行
复制
data.validateOptions.message

作为自定义方法中的错误消息,谁能给我指出正确的方向?

谢谢

OneShot

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-31 11:44:44

我认为Alex的答案不会起作用,因为字符串在JS中是不可变的。

虽然很接近。从Alex的代码开始,如果您创建了一个包含数据对象(或仅包含一个消息字符串)的闭包和一个返回消息的函数,则可以将该函数作为第三个参数传递给addmethod调用。如下所示:

代码语言:javascript
运行
复制
(function() {
    var data = {};
    var messager = function() {
        return data.validateOptions.message;
    };
    jQuery.validator.addMethod("perorgproperty", function(value, element) { 
        debugger; 
        //alert('testing perorgproperty'); 
        data = $(element).metadata();
        return this.optional(element) || /^\d+$/i.test(value); 
    }, messager);
})();
票数 1
EN

Stack Overflow用户

发布于 2009-10-28 21:39:36

创建一个闭包怎么样?

代码语言:javascript
运行
复制
var data = {};
jQuery.validator.addMethod("perorgproperty", function(value, element) { 
    debugger; 
    //alert('testing perorgproperty'); 
    data = $(element).metadata(); 

    return this.optional(element) || /^\d+$/i.test(value); 
}, data.validateOptions.message); 

只要在消息之前对函数求值,message不就是通过引用传入的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1636530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档