2013-04-29 80 views
0

我有一個小小的問題,試圖創建一個頁面。在簡歷中,我想驗證用戶是否選擇了一個文件,然後將其上載到服務器上。我知道這是可能做到這一點的JavaScript throught:Javascript驗證FileUpload和服務器上傳

if(document.getElementById("uploadBox").value != "") { 
    // you have a file 
} 

但事實是,如果我添加屬性RUNAT =「服務器」我的輸入:

<input id="myFile" type="file" runat="server" /> 

我不能再驗證。所以,你知道一個辦法來做我想做的事嗎。

PS:請記住,我想驗證與JavaScript來捕獲回發,然後顯示錯誤消息使用Ajax。這就是爲什麼我不通過服務器代碼進行驗證。

謝謝:)

回答

1

這是因爲,當您運行服務器端的輸入控件的ID發生了變化。這裏有兩種方法來解決這個問題,無論是強制ID保持不變這一點:

<input id="myFile" type="file" runat="server" ClientIDMode="Static" /> 

,或者如果你有JavaScript中的同一ASP頁面,則可以直接寫ID是這樣的:

if(document.getElementById('<%= uploadBox.ClientID %>').value != "") { 
    // you have a file 
} 
+0

謝謝你nmat!第一種方式完美地工作! :) – 2013-04-29 13:41:36