【问题标题】:jQuery acts different in IE than Google ChromejQuery 在 IE 中的行为与 Google Chrome 不同
【发布时间】:2015-06-23 06:52:17
【问题描述】:

我有一个包含上传文件的表单。我创建了一个 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 中的文件大小行为与 Google Chrome 中的一样? 我的 IE 版本是 11 但我将它设置为 10 模式。

【问题讨论】:

    标签: jquery google-chrome internet-explorer


    【解决方案1】:

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

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

    在最新版本的 Intertet explorer 中,您不必遇到任何问题。

    【讨论】:

    • 即使我将其更改为 11,但单击提交后仍会显示大小):
    • 您在任何元标记中是否有类似这样的内容:
    • 我也有同样的情况,但 IE=10。现在删除该剂量根本没有帮助,它使我所有的 jquery 验证关闭,这意味着表单已提交,我什至没有填写失败。
    • 我决定使用 IE=edge 让我的 jQuery 工作得很好但是文件的大小仍然一样(提交后出现).. 这让我很生气,我搜索了这么多>_
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    相关资源
    最近更新 更多