1. 程式人生 > >怎樣清空文件上傳控件裏的選定文件(路徑)

怎樣清空文件上傳控件裏的選定文件(路徑)

自己 pri 簡約 fileinput 不變 接受 騰訊 span ref

我又來扯雞毛蒜皮了。

有名言曰人生短得不夠扯雞毛蒜皮,但我的工作就是由無數的雞毛蒜皮組成,如之奈何?

今天的雞毛和蒜皮是:怎樣清空文件上傳控件裏的選定文件(路徑)?

場景是醬紫的:
有一個上傳控件和一個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)。我認為他有道理。

可是,一來我年紀大了,一味搞前端大家都接受不了;二來可能對當架構師幫助不是非常大。現在分工越來越精細。全部技術都掌握是不可能的。有些僅僅需了解,會用即可了,要學會放手。

怎樣清空文件上傳控件裏的選定文件(路徑)