在JQuery验证器中访问当前上下文

Accessing current context within JQuery validator

本文关键字:上下文 访问 JQuery 验证      更新时间:2023-09-26

我有一个自定义的JQuery验证器,它验证输入的电子邮件是否已经存在于列表中。我在cshtml中使用foreach显示3个输入字段。基本上我的代码中只有一个输入字段。在我的验证器中。addMethod",我试图使用$(this)访问文本字段。但那是返回验证器。下面是我的代码:

$.validator.addMethod("emailTextField", function (value, element) {
        var designeeID = $(this).attr("data-level");
        var newEmail = $("#txtUpdate" + designeeID).val();
        var exists = true;
        $("#emailList" + designeeID + " > .list-group-item > .email").each(function () {
            if ($(this).html().toLowerCase() == newEmail.toLowerCase()) {
                exists = false;
            }
        });
        return exists;
    },
   "Email already exists in the list.");
});

我使用"数据级"访问一个特定的文本字段与上面的代码中的第一个"this"。但它返回验证器。如果我给出textfield的类而不是"this",它会考虑所有三个textfield。我只需要访问当前上下文中的文本字段

如果您想要访问正在验证的元素,这应该可以工作:

 var designeeID = $(element).attr("data-level");