1

我在我的页面上将 jQuery Validate 插件与 BriteVerify 结合使用(BriteVerify 是一项检查已知垃圾电子邮件地址和其他数据的服务,以防止表单上的虚假/垃圾邮件注册)。

请注意,“有效”字段(由 Validate 插件确定)可能被 BriteVerify 视为垃圾。例如,mickeymouse@aol.com通过验证,因为它是一个格式正确的地址,但 BriteVerify 阻止它,因为该帐户实际上并不存在。

所以,我想要做的是:如果来自 BriteVerify 的响应表明电子邮件地址不好,则以编程方式将该字段标记为“无效”(验证插件会自行执行的方式)。见下文:

jQuery.briteVerify.email(jQuery("#email").val(), function(email){
    if (email.errors) {
        // Trigger jQuery Validate's invalid appearance/error message here
    } else {
        // Do nothing - email is valid
    }
}

我希望这是有道理的。这可能吗?

4

1 回答 1

1

我找不到“触发”无效字段的方法,但我能够完成类似这样的事情:

jQuery.briteVerify.email(jQuery("#email").val(), function(email){
    if (email.errors) {
        msg = email.errors[0][1];
        if (!($("#email").hasClass("error"))) {
            $("#email").addClass("error").after("<label class='bv error'>" + msg + ".</label>");
        }
    } else {
        form.submit();
    }
}

因此,如果 BriteVerify 不喜欢输入的电子邮件,并且输入字段还没有error类(表明它通过了“正常”验证),那么我添加类并动态插入错误消息。使用相同的类使其外观与 Validate 将字段标记为无效一样。

请注意标签元素如何具有一个附加bv类——这是为了确定错误消息是来自 Validate 还是来自 BriteVerify。因此,为了防止同时显示两条错误消息(每条一条),我在字段通过“正常”验证时都删除了 BriteVerify 错误消息(如果有的话):

$("#register").validate({
    ...
    success: function(){
        $(".bv").remove();
    }
});

每当按下一个键时:

$("#email").keypress(function(){
    $(".bv").remove();
});
于 2012-09-18T14:25:43.997 回答