怎樣清空文件上傳控件裏的選定文件(路徑)
我又來扯雞毛蒜皮了。
有名言曰人生短得不夠扯雞毛蒜皮,但我的工作就是由無數的雞毛蒜皮組成,如之奈何?
今天的雞毛和蒜皮是:怎樣清空文件上傳控件裏的選定文件(路徑)?
場景是醬紫的:
有一個上傳控件和一個button。當中上傳控件隱藏。點擊button,觸發上傳控件點擊事件,於是彈出文件選擇對話框;選好文件後。於是觸發了上傳控件的onchange事件。在這個事件裏。將文件上傳。
有點裝逼,就是隱藏了上傳控件。
這可能是出於界面簡約的考慮。問題是。同一個文件不能連續上傳2次。由於路徑不變,沒有觸發onchange事件。
有時會帶來不大好的體驗。假如客戶一個文件上傳失敗,他再試一次,那麽第二次將毫無反應。
改良的思路是在onchange事件裏。上傳之後。將上傳控件的選定內容清空。而每次上傳之前,先推斷是否已選定文件。避免清空之後再次觸發onchange帶來的尷尬。
代碼例如以下:
function importData() {
//推斷上傳控件的選定是否為空,空則返回
if (document.getElementById("fileImportData").files.length == 0) return;
function clearFileInput() {
var file = $("#fileImportData" );
file.after(file.clone().val(""));
file.remove();
}
$("#formImport").ajaxSubmit({
url: "上傳文件的action",
type: ‘post‘,
data: {},
success: function (data) {//上傳成功
clearFileInput();//清空
。。
。
},
error: function (e) {
clearFileInput();
alert(e);
}
});
}
這段時間搞了不少前端,認為對前端的認識比曾經有所進步。
前幾天看到有個騰訊的員工寫了篇文章,說要想真正搞好前端,應該努力去吃透某個JS框架的底層,或者自己用標準的JS來實現,而不是偏應用(http://www.cnblogs.com/vajoy/p/5040365.html)。我認為他有道理。
可是,一來我年紀大了,一味搞前端大家都接受不了;二來可能對當架構師幫助不是非常大。現在分工越來越精細。全部技術都掌握是不可能的。有些僅僅需了解,會用即可了,要學會放手。
怎樣清空文件上傳控件裏的選定文件(路徑)