Javascript jquery在自定义方法中使用if语句进行验证

Javascript jquery在自定义方法中使用if语句进行验证,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我正在使用jquery的验证插件,并使用以下自定义方法: $.validator.addMethod("username", function(value, element) { if (element.prop("required")) { var re = new RegExp('^([FG]?\\d{5}|\\d{5}[AB])$'); } else { var re = new RegExp('^'+element.defaultVa

我正在使用jquery的验证插件,并使用以下自定义方法:

$.validator.addMethod("username", function(value, element) {
    if (element.prop("required")) {  
        var re = new RegExp('^([FG]?\\d{5}|\\d{5}[AB])$');
    } else  {
        var re = new RegExp('^'+element.defaultValue+'|^([FG]?\\d{5}|\\d{5}[AB])$');
    }
    return re.test(value);
});
if语句返回错误
元素。prop不是函数

我也试过$(这个)。道具。。。虽然我没有收到任何错误,但它总是运行语句的else部分

还有什么我可以用来代替的吗

编辑:

这是电话:

$("#myform").validate({
    debug: true,
    ignore: ".ignore",
    rules: {
        field: {
            required: {
                 depends: function() {
                     return $(this).prop("required");
                 }
            },
            username: true,
        }
    },
    messages: {
        field: {
            username: "Enter a valid username"
        }
    },
    success: function(label) {
        label.text("Good result!");
    },
    submitHandler: function() {
        alert("submitted!");
    }
});

我认为你应该使用:

if ($(element).prop("required")) { 

您可能正在使用较旧的jQuery版本:


试试$(element.attr(“必选”)

@Adil-见编辑的post.Ha!虽然我认为我已经尝试了一切,但我想我错过了这一次。谢谢通常情况下是这样的-您几乎尝试了这个确切的答案,但不是完全:)@Tom:如果您不想将元素包装到jQuery对象中,您也可以使用
element.getAttribute(“必需”)
,但是如果您使用的是jQuery,则不需要混合语法。try$(element).attr(“必需”)@RajeevSharma:你应该用你的注释更新你的答案
$(元素)。attr(“必需”)
作为
元素。attr(“必需”)
不会执行。