IE9:验证消息未被清除

时间:2011-09-27 15:50:44

标签: asp.net validation internet-explorer-9

我正在使用仅接受图像文件的上传控件。如果我选​​择任何非图像文件,我将显示验证错误消息“文件类型无效”。我使用的上传控件如下

<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中)。它在其他浏览器中完美运行。请帮帮我。

感谢。

1 个答案:

答案 0 :(得分:2)

硬编码ID很容易破解。尝试使用ClientID访问JavaScript中的控件。

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

我也会使用ClientID来获取验证标签:

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