2012-08-10 28 views
2

我遇到以下問題。使用javascript阻止文件上傳對話框

我有一個aspx文件上傳輸入,必須只顯示文件對話框,如果某個文本字段有一個值,否則我必須簡單地顯示一個改變說法來填充該字段。

我不能使用jquery。

+0

jquery就是javascript。它只是讓事情變得更容易,但是卻沒有做任何事情,只有通過JavaScript才能得到準確的結果。 – 2012-08-10 16:41:53

+1

我知道,但嗡嗡聲說我不能使用jquery,因爲客戶希望生活在石器時代。 – 2012-08-10 16:51:42

+0

你有什麼嘗試?我現在可以告訴你,如果文件選擇器被禁用,對話框將不會出現。 – travis 2012-08-10 16:51:54

回答

2

事件對象有一個preventDefault函數,您可以使用它來停止默認繼續。使用這個,你可以附加一個點擊事件到你的文件上傳文件,它會在嘗試選擇一個文件時觸發。從那裏你可以檢查你的文本輸入的值,並返回/停止文件元素的默認值。

(function() { 
    var __file = document.getElementById('file'); 
    var __text = document.getElementById('required'); 

    __file.addEventListener('click', function (e) { 
    e = e || window.event; 

    if (__text.value.length === 0) 
    { 
     e.preventDefault(); 
     return alert('Please fill out the textbox!'); 
    } 


    }) 
})() 

注意:只有在Chrome中進行測試。

+0

謝謝!我會測試一下,然後再報告。 – 2012-08-10 17:10:31

+0

它的工作。謝謝你的幫助。 – 2012-10-24 16:20:51