ajaxfileupload.js解決瀏覽器相容問題
阿新 • • 發佈:2019-02-07
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());