隐藏文件类型的文件上传,通过jquery提交表单

时间:2013-07-23 12:30:01

标签: javascript jquery iframe

我正在使用iframe进行文件上传,并且在IE以外的所有浏览器中都能正常运行。它表示在form.submit行拒绝访问。请检查下面的代码。

$(function(){
        $('.uploadBanner').click(function () {
               $('.uploadFile').trigger('click');
            });
        $(".uploadFile").on('change', function(e){  
            e.preventDefault();            
            document.getElementById('bannerUploadForm').submit();
        });  

    });

我的.uploadBanner是隐藏字段的click事件,而.uploadFile是隐藏文件类型

请告诉我。

2 个答案:

答案 0 :(得分:1)

由于安全原因,IE不允许从javascript操纵type =“file”输入元素。

您可以解决此问题,检测浏览器是否ie打开文件上传对话框并让用户手动点击

if(jQuery.browser.msie) { 
    $('#hiddenUploadForm').dialog();
}
else {
    $('.uploadFile').click();
}

答案 1 :(得分:0)

IE明确禁止您以编程方式打开文件选择器对话框(通过触发单击事件),然后以编程方式上载任何所选文件。在这种情况下尝试提交表单时将发生错误。让用户点击文件输入元素,你会没事的。如果你需要设置文件输入元素的样式,那么这并不难。简单地使它变得不透明并添加使它成为包含适当样式的div的子项。如果需要,请在SO或Google上查看具体内容。