0

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 ステートメントはエラーを返しますelement.prop is not a function

$(this).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!");
    }
});
4

2 に答える 2

2

私はあなたが使うべきだと思います:

if ($(element).prop("required")) { 
于 2012-08-14T16:22:10.980 に答える
0

古いバージョンの jQuery を使用している可能性があります。

$(element).attr("required") を試してください

于 2012-08-14T16:22:39.640 に答える