首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何配置哪个事件自定义验证方法触发

如何配置哪个事件自定义验证方法触发
EN

Stack Overflow用户
提问于 2013-09-05 10:28:47
回答 1查看 1.1K关注 0票数 0

我正在使用jQuery验证插件。

我有一个自定义验证器方法。它看上去是否在使用电子邮件地址。

代码语言:javascript
运行
复制
$.validator.methods.notinuse = function (value, element, param) {

    $.post("/static/global/member/validation.ashx", { email: value})
    .done(function (data) {
        return data == "true";
    });
};

这就是所谓的。

代码语言:javascript
运行
复制
$("#form-Registration").validate({
    rules: {
        Email: {
            notinuse: ''
        }
    },
    messages: {
        Email: {
            notinuse: "Email address in use"

        }
    }
});

然而,这是可行的,但它似乎对每一个太频繁的关键触摸开火。

我的问题是:

1)使用自定义验证器方法,是否有方法配置调用它的事件?我认为,无论是在表单提交还是文本字段上,集中注意力都可以做到这一点。我想让它与js查询api保持一致。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-05 14:46:40

正确的格式是将自定义方法/规则设置为true或传递参数,而不是将其设置为''。您还将notinuse字段名在messages中拼错为inuse

只要没有在每个键上触发它,就可以将onkeyup选项设置为false。这将限制您的方法只触发焦点和提交点击。但是,此设置将影响窗体上的所有字段。

代码语言:javascript
运行
复制
$("#form-Registration").validate({
    onkeyup: false, // <-- disable "onkeyup" for all form fields
    rules: {
        Email: {
            notinuse: true
        }
    },
    messages: {
        Email: {
            notinuse: "Email address in use"

        }
    }
});

如果只想禁用这一个字段的onkeyup,可以将onkeyup设置为自定义函数。在本例中,如果元素namenotinuse匹配,则键上没有验证,否则,所有其他字段都将使用默认的onkeyup函数。

代码语言:javascript
运行
复制
$("#form-Registration").validate({
    onkeyup: function( element, event ) {
        if (element.name === "notinuse") {
            return false;
        } else if ( event.which === 9 && this.elementValue(element) === "" ) {
            return;
        } else if ( element.name in this.submitted || element === this.lastElement ) {
            this.element(element);
        }
    },
    rules: {
        Email: {
            notinuse: true
        }
    },
    messages: {
        Email: {
            notinuse: "Email address in use"

        }
    }
});

演示1(一个字段禁用onkeyup的两个字段)http://jsfiddle.net/E9WNy/

演示2(,为您的单个字段禁用onkeyup ):http://jsfiddle.net/CJzJr/

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

https://stackoverflow.com/questions/18633878

复制
相关文章

相似问题

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