使用jquery malsup提交带有输入文件的表单不仅仅在IE中工作

时间:2013-03-31 20:21:11

标签: jquery jquery-forms-plugin

    // triggering input:file click via <a> tag click

    $('.upload_company_logo').on('click', function(e){
        e.preventDefault();
        $('#addCompanyLogo input:file').click();
    });

    // main submit event

    $('#addCompanyLogo').submit(function() {
        $(this).unbind('submit').ajaxSubmit({    
            iframe: true,
            url : _ROOT + 'users/upload_company_logo',
            success: function (responseText, statusText) {   
                var response = $.parseJSON(responseText);
                if(statusText == 'success') {
                    var response = $.parseJSON(responseText);
                    $('.the_company_logo').attr('src', _ROOT + 'image/company_logo/' + response.tmp_name + '?t=' + (new Date()).getTime())
                } 
            }                         
        });
        return false;
    });

    // submitting form
    $('#addCompanyLogo input:file').on('change', function() {
       $('#addCompanyLogo').submit();
    });

我尝试上面代码通过Ajax上传图片,并且它在所有浏览器中工作正常,除了IE,在IE中显示错误Access is Denied

有人想提一下,此处隐藏了form#addCompanyLogo表单,并通过input:file代码点击触发了<a>更改事件。

1 个答案:

答案 0 :(得分:0)

IE不支持通过onchange提交带有文件上传的表单。这是一种“安全”功能。只需通过直接点击更改为触发:)