2015-08-28 55 views
1

你知道我可以在文件上傳按鈕點擊查看一個打開文件對話框,但我可以選擇什麼,簡單地關閉或取消它。我需要找到這個事件並做一些處理。例如,如果FileUpload被觸發並且用戶不選擇任何文件,那麼我隱藏一個按鈕。檢查如果一個FileUpload HASE做任何事情在客戶端

這裏是當你選擇一個輸入文件按鈕,它將使按鈕隱形如果你取消選擇一個文件,該文件將調用一個函數。

 function CancelCheck(element) { 
     var file = elemeny.files[0]; 
     if (file == undefined) 
      document.getElementbyId("Btn1").style.visibility = 'hidden'; 
     } 

,這裏是我的輸入文件控制:

<input id="Upload1" type="file" name="file" onchange="javascript:CancelCheck(this)" runat="server" accept=".txt" /> 

如果您之前已經選擇了一個文件(我的意思是輸入文件中包含的文件),它將正常工作,但如果你是在INT點擊了第一次,取消它,它不會工作。

希望我清楚。

+0

請發表您的一些HTML代碼那裏的文件上傳控件,所以我們可以提出一個建議。 – celerno

+0

@celerno謝謝你,我發佈了一些html和javascript代碼。 – Nofuzy

回答

1

有沒有這樣的事件,但有一些解決方案。但我不會推薦它,除非真的有必要。

所以我們應該考慮當「取消」按鍵會發生什麼 - 瀏覽器和HTML文檔的重點。爲了處理「對話取消事件」,我們可以在HTML主體上附加一個事件處理函數onfocus事件(例如)。一旦達到這個處理程序,我們必須刪除它,然後我們可以檢查文件上傳程序的值是否爲空。

下面是示例例如:

HTML

<input type="file" id="fileUpload" /> 

的JavaScript

var fileUpload = document.getElementById('fileUpload') 

fileUpload.addEventListener('click', onUploadClick); 

function onUploadClick() { 
    document.body.addEventListener('focus', onBodyFocus, true); 
} 

function onBodyFocus() { 
    setTimeout(function() { 
     if(!fileUpload.value || !fileUpload.value.length) 
     { 
      alert('cancelled'); 
     } 
    }, 100); 

    document.body.removeEventListener('focus', onBodyFocus); 
} 

Click for JsFiddle demo

+0

謝謝,但我有超過10個上傳按鈕,那麼我如何處理它們? – Nofuzy

+1

您應該使用一些類的上傳按鈕和存儲選擇的上傳按鈕臨時變量 - [演示](https://jsfiddle.net/6Lqrzna2/1/) –

+0

有沒有什麼辦法來檢查,如果用戶點擊上傳按鈕? – Nofuzy

相關問題