jQuery在IE中的行为与谷歌Chrome不同

时间:2015-06-23 06:52:18

标签: jquery google-chrome internet-explorer

我有一个包含上传文件的表单。我创建了一个jQuery函数来验证并显示选择文件时的文件大小。当用户浏览并选择文件在Google Chrome中时,会立即显示大小。但是,在IE中,提交表单时会出现文件大小,这意味着如果所有表单字段都有效并且用户单击“提交”按钮,则文件大小显示为1秒钟,然后我将用户定向到成功页面。

这是我的jQuery代码:

(function ($, W, D) {
    var JQUERY4U = {};

    JQUERY4U.UTIL = {
        setupFormValidation: function () {
            $("#addMeeting-form").validate({
                errorElement: 'div',
                rules: {
                    record: {
                        required: true,
                        accept: "doc|docx|pdf",
                        checkRecordSize: true
                    }
                },
                submitHandler: function (form) {
                    form.submit();
                }
            });

            jQuery.validator.addMethod('checkRecordSize', function () {
                var iSize = ($("#recordToUpload")[0].files[0].size / 1024);
                if (iSize / 1024 > 1) {
                    if (((iSize / 1024) / 1024) > 1) {
                        iSize = (Math.round(((iSize / 1024) / 1024) * 100) / 100);
                        $("#lblSize").html(iSize + " GB");
                    } else {
                        iSize = (Math.round((iSize / 1024) * 100) / 100);
                        $("#lblSize").html(iSize + " MB");
                    }
                } else {
                    iSize = (Math.round(iSize * 100) / 100);
                    $("#lblSize").html(iSize + " KB");
                }
                return (iSize < 4294967295); // 4GB is 4,294,967,295 bytes
            }, "Your file size exceeded 4GB");
        }
    };
    $(D).ready(function ($) {
        JQUERY4U.UTIL.setupFormValidation();
    });
})(jQuery, window, document);

如何在IE浏览器中制作IE文件大小的行为? 我的IE版本是11但是我把它设置为10模式。

1 个答案:

答案 0 :(得分:0)

旧版本的Internet Explorer尚未实现用于文件上载的API,并且无法访问文件属性。它首先将文件上传到服务器,然后访问其属性。

因此,首先将图像发送到服务器,然后检查大小。在现代浏览器中,他们已经实现了用于上传文件的API,他们可以在将文件发送到服务器之前访问要上载的文件的属性。

在最新版本的Intertet资源管理器中,您不必遇到问题。