2013-11-27 24 views
0

我正在使用jQuery表单插件通过ajax上传文件。我测试过脚本,它可以在除IE之外的所有浏览器上运行。似乎在IE中什么也没有发生(事件& ...)。我工作了几个小时,仍然没有运气。jQuery表单插件在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; 
     } 
    }); 
}); 

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

+0

一个什么样的问题?不介意我的话

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

:以下内容添加到您的JavaScript ...我对IE的评论:(, –

+0

控制台中的任何错误?所有版本的IE? – charlietfl

+0

@charlietfl,不,我认为它不会发送数据到服务器,因为我的日志文件不显示任何活动时使用IE – Ramin

回答

1

Internet Explorer 9及以下版本不支持XMLHttpRequest Level 2协议。 jQuery需要这样才能异步上传文件。您必须使用iFrame或为传统IE浏览器的用户禁用上传功能。

您可以使用条件注释来测试旧版本的IE。如果变量“格”设置与<i></i>值,那么你正在处理一个老版本的IE