1. 程式人生 > >ajaxfileupload.js解決瀏覽器相容問題

ajaxfileupload.js解決瀏覽器相容問題

IE、Chrome選擇附件後文本框值丟失

問題描述:

   檢視ajaxFileUpload.js原始碼:

  

  

    由此分析:此外掛會把原來的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返回json帶<pre>

   問題描述:

    檔案正常提交,後臺接收正常,action中返回json正常,用火狐檢視,響應的值也是正常的。但是,ajax呼叫js中,就是不走success的方法。經過調查,是因為返回的json中,帶有<pre>標籤

   解決方法:

ajaxfileupload.js檔案,uploadHttpData中eval( “data = ” + data );變為data = jQuery.parseJSON(jQuery(data).text());