2011-09-27 68 views
1

我使用的上傳控件只接受圖像文件。如果我選​​擇任何非圖像文件,我將顯示驗證錯誤消息「文件類型無效」。我使用的上傳控件如下IE9:驗證消息沒有被清除

<UC:UploadControl runat="server" ID="file_logo" IsRequired="false" ReqValidationGroup="jpg" onkeypress="Javascript:CheckNumeric(event);" RequiredFieldMessage="Please upload Image file" CheckFileType="true" Width="870" Height="100" CheckDimension="false" RegexpFieldMessage="File type is invalid." FileFormats="gif,GIF,jpg,JPG,jpeg,JPEG" RegDisplay="true" /> 

我使用另一個鏈接來清除錯誤驗證消息。該代碼是

<a href='javascript:chkFileTypes("ctl00_mainContentPlaceHolder_file_logo_uploadfiles");clearInvalidLabel("ctl00_mainContentPlaceHolder_file_logo_uploadfiles")' >Clear File</a><br /> 
用於清除驗證消息

我的JavaScript函數現在

function clearInvalidLabel(control) { 
if (control == "ctl00_mainContentPlaceHolder_file_logo_uploadfiles") $("span[id$='file_logo_regexpType']").hide(); 
if (control == "ctl00_mainContentPlaceHolder_PopUp_logo_uploadfiles") $("span[id$='PopUp_logo_regexpType']").hide();} 

,如果我再次選擇使用UploadControl不正確的文件,是沒有得到顯示錯誤驗證消息(只有在IE9) 。它在其他瀏覽器中完美工作。請幫助我。

謝謝。

回答

2

硬編碼ID很容易中斷。嘗試使用ClientID訪問JavaScript中的控件。

<a href='javascript:chkFileTypes("<%=UploadFilesControl.ClientID%>");clearInvalidLabel("<%=UploadFilesControl.ClientID%>")'>Clear File</a> 

我會使用客戶端ID來獲取驗證標籤太:

$("#<%=regexpType.ClientID%>").hide();