1

検証に必要のないファイル入力ボックスがあります。しかし、入力ボックスが空でない場合は、ファイル タイプとファイル サイズの検証を実行する必要があります。

jQuery(document).ready(function(){

jQuery.validator.addMethod("accept", function(value, element, param) {
    return value.match(new RegExp("." + param + "$"));
});

jQuery.validator.addMethod('filesize', function(value, element, param) {
    return this.optional(element) || (element.files[0].size <= param) 
});


jQuery('#adminform').validate({

    rules: {

        resume: {
                required: false,
                accept: "(doc|docx|pdf)",
                filesize: 1024 //1048576
        }
    },
......................
    resume: {
        accept: "File type not supported",
        filesize: "File cannot be more than 1MB!"
    },

今のところ問題は、何も入力せずに空のままにしても、ルール「受け入れ」が実行されることです。つまり、 「ファイルタイプがサポートされていません」というメッセージが表示されます。

4

2 に答える 2

0

これを試してください.空でないチェックは、フィールドが空白のままの場合、検証が実行されないことを保証します

$('input[type="file"]').on("change", function() { 
if ($this.val() !== '') { 
    //do validation stuff here!!
} 
});
于 2012-12-26T05:50:02.683 に答える
0

これが役立つ場合は、これを試してください:

$("#commentForm").validate({
rules: {
    name: "required",
    file: "required",
    name: {
        required: true,
        minlength: 2
    },
    file: {
        required: false,
        minlength: 5
    }
},
messages: {
    name: {
        required: "Please enter a username",
        minlength: "Your username must consist of at least 2 characters"
    },
    file: {
        required: "Please select a file",
        minlength: "Your password must be at least 5 characters long"
    }
},
submitHandler: function(form) {
    if ($('#cfile').val() != "") {
        $("#commentForm").validate({
            rules: {
                file: "required",
                file: {
                    required: true,
                    minlength: 5
                }
            },
            messages: {
                file: {
                    required: "Please select a file"
                }
            }
        });
        $(form).submit();
    } else {
        alert('file missing.');
    }
}

});
于 2012-12-26T06:35:19.200 に答える