ajaxfileupload.js解决浏览器兼容问题

IE、Chrome选择附件后文本框值丢失

问题描述:

   查看ajaxFileUpload.js源码:

   ajaxfileupload.js解决浏览器兼容问题_第1张图片

   ajaxfileupload.js解决浏览器兼容问题_第2张图片

    由此分析:此插件会把原来的file元素重新替换成新的file元素,因此之前绑定的change事件就失效了。

解决方法:

    由于安全考虑,在IE和chrome下 ,jquery的clone并不能克隆input field的值,所以就导致克隆后新的input丢失了原来的值。

在jQuery(form).submit(); 后面加上这四句,原理是提交后把元素再复制回来。如下图所示:

  var oldElement = jQuery('#jUploadFile' +id ,form);
  var newElement =  jQuery('#'+s.fileElementId );
  jQuery(newElement).replaceWith(oldElement);
  jQuery(oldElement).attr('id', s.fileElementId )

ajaxfileupload.js解决浏览器兼容问题_第3张图片

ajaxFileUpload返回json带

   问题描述:

    文件正常提交,后台接收正常,action中返回json正常,用火狐查看,响应的值也是正常的。但是,ajax调用js中,就是不走success的方法。经过调查,是因为返回的json中,带有

标签

   解决方法:

ajaxfileupload.js文件,uploadHttpData中eval( “data = ” + data );变为data = jQuery.parseJSON(jQuery(data).text());

你可能感兴趣的:(web前端)