jQuery表单插件在IE中不起作用

时间:2013-11-27 21:21:41

标签: javascript php jquery ajax jquery-forms-plugin

我正在使用jQuery表单插件通过ajax上传文件。我已经测试了脚本,它适用于除IE之外的所有浏览器。似乎在IE中没有任何事情发生(事件和......)。我工作了几个小时,但仍然没有运气。

PHP:

echo $this->input->post('name');//this is a debuging statement which shows the data sent by client

JS:

$("input[type=file]").on('change',function(){
    $(this).parents('.fileinput-wrapper').find('.fileinput-preview').css('background','url(http://localhost/project/assets/images/ajax-loader.GIF) no-repeat center center');
    var selectedElement = this;
    var name = $(this).attr('name').toString();
    $('#upload').ajaxSubmit({
        //dataType:'json',
        data: {name:name},
        success: function(data) {
            $(selectedElement).parents('.fileinput-wrapper').find('.fileinput-preview').css('background',"url('http://localhost/project/assets/images/loading.png') no-repeat center center");
            return false;
        },
        error : function(xhr) {
            alert(xhr.responseText);
            return false;
        }
    });
});

我该怎么办? (感谢您的帮助。)

1 个答案:

答案 0 :(得分:1)

Internet Explorer 9及更低版本不支持XMLHttpRequest Level 2协议。这是jQuery异步上传文件所必需的。您必须使用iFrame或禁用具有旧版IE浏览器的用户的上传功能。

您可以使用条件注释来测试旧版本的IE。将以下内容添加到JavaScript:

var div = document.createElement("div");
div.innerHTML = "<!--[if lte IE 9]><i></i><![endif]-->"; 

如果变量“div”设置为<i></i>值,则表示您正在处理旧版本的IE