jquery验证文件大小

jquery验证文件大小,jquery,validation,Jquery,Validation,我正在使用jquery验证,我想限制一些文件大小作为输入。为此,我添加了以下函数: jQuery.validator.addMethod("maxfilesize", function(value, element, params) { var elementsize; try{ elementsize = $("#browse_"+$(element).attr("id"))[0].files[0].size; }catch(e){ va

我正在使用jquery验证,我想限制一些文件大小作为输入。为此,我添加了以下函数:

jQuery.validator.addMethod("maxfilesize", function(value, element, params) {
    var elementsize;
    try{
        elementsize = $("#browse_"+$(element).attr("id"))[0].files[0].size;
    }catch(e){
        var browserInfo = navigator.userAgent.toLowerCase();
        if(browserInfo.indexOf("msie") > -1){
            var fso = new ActiveXObject("Scripting.FileSystemObject");
            elementsize = fso.getFile($("#browse_"+$(element).attr("id"))[0].value).size;
        }else{
            return true;
        }
    }
    var size = params[0], typesize = params[1];
    if( typesize == "Ko" ){
        size *= 1024;
    }else if(typesize == "Mo"){
        size *= 1024 * 1024;
    }else if(typesize == "Go"){
        size *= 1024 * 1024 * 1024;
    }
    return this.optional(element) || elementsize < size;
}, jQuery.format("The max file size of {0}{1} is reached"));
HTML如下所示:

<form id="workflow_form" class="form-horizontal" role="form" novalidate="novalidate">
<fieldset>
    <label class="col-sm-2 control-label" for="read_1">Read 1 browsefile__sl10Gb</label>
    <div class="col-sm-10">
        <div class="input-group">
            <input id="read_1" class="form-control default" type="text" readonly="readonly" value="" name="read_1">
            <span class="input-group-btn">
                <button id="urlfile_btn_read_1" class="btn btn-default" type="button">
                    <span class="glyphicon glyphicon-search"></span>
                </button>
            </span>
        </div>
        <span class="help-block">Which read1 files should be used</span>
    </div>
</fieldset>
</form>
<form style="display:none;" enctype="multipart/form-data" method="post">
    <input id="browse_read_1" class="fileupload" type="file" name="browse_read_1">
</form>

读取1个浏览文件\uuuSL10GB
应该使用哪些read1文件
我有一些javascript来处理带有输入和按钮的表单与隐藏输入文件的表单之间的链接。我这样做是为了使用filupload插件

我做错了什么? 谢谢你的回复

Jerome

$.validator.addMethod('filesize',函数(值、元素、参数){
var minsize=1000;//最小1kb

如果((value>minsize)&&(value您应该在验证器中使用
element.files[0]。size

$.validator.addMethod('filesize', function (value, element, arg) {
        if(element.files[0].size<=arg){
            return true;
        }else{
            return false;
        }
    });

    $("#myform" ).validate({
        rules: {
            file_upload:{
                required:true,
                accept:"application/pdf,image/jpeg,image/png",
                filesize: 200000
            }
        },messages: {
            file_upload:{
                filesize:" file size must be less than 200 KB.",
                accept:"Please upload .jpg or .png or .pdf file of notice.",
                required:"Please upload file."
            }
        },
        submitHandler: function(form) {
            form.submit();
        }
    });
$.validator.addMethod('filesize',函数(值、元素、参数){

if(element.files[0].size
$(element.attr(“id”)
你会得到
#idname
。你被添加到
#browse#idname
。我想这是你的问题。你可以提供HTML标记,这样我们可以更好地帮助你吗?@Prashant当我对我的元素进行console.log时,这是正确的一个!我确实有#browse#idname.@laruiss:我编辑了这篇文章来添加HTML
$(“[id^=browse\”)
您写入了错误的id。在验证器中应该是
browse\u read\u 1
Hmm
value
将是文件路径,而不是文件大小,请使用
元素.files[0].size
获取文件大小。
$.validator.addMethod('filesize', function (value, element, arg) {
            var minsize=1000; // min 1kb
            if((value>minsize)&&(value<=arg)){
                return true;
            }else{
                return false;
            }
        });

        $("#myform" ).validate({
            rules: {
                file_upload:{
                    required:true,
                    accept:"application/pdf,image/jpeg,image/png",
                    filesize: 200000   //max size 200 kb
                }
            },messages: {
                file_upload:{
                    filesize:" file size must be less than 200 KB.",
                    accept:"Please upload .jpg or .png or .pdf file of notice.",
                    required:"Please upload file."
                }
            },
            submitHandler: function(form) {
                form.submit();
            }
        });
$.validator.addMethod('filesize', function (value, element, arg) {
        if(element.files[0].size<=arg){
            return true;
        }else{
            return false;
        }
    });

    $("#myform" ).validate({
        rules: {
            file_upload:{
                required:true,
                accept:"application/pdf,image/jpeg,image/png",
                filesize: 200000
            }
        },messages: {
            file_upload:{
                filesize:" file size must be less than 200 KB.",
                accept:"Please upload .jpg or .png or .pdf file of notice.",
                required:"Please upload file."
            }
        },
        submitHandler: function(form) {
            form.submit();
        }
    });