【问题标题】:displaying custom message on custom errors in validation summary control on client side?在客户端的验证摘要控件中显示自定义错误的自定义消息?
【发布时间】:2011-06-21 14:04:19
【问题描述】:
我正在使用验证摘要控件来显示 asp.net 验证控件的错误消息。
页面中有一些验证没有使用验证控件。我正在为这些使用自定义 javascript 和 jquery 代码。请指导我如何在验证摘要控件以及 asp.net 验证控件中显示这些错误的消息。
【问题讨论】:
标签:
asp.net
asp.net-2.0
asp.net-3.5
【解决方案1】:
关键是使用自定义验证控件。此控件支持客户端脚本(因此您仍然可以使用您的 javascript 代码来执行此操作),但仍与 asp.net 提供的验证框架相关联。
来自microsoft 文章,类似这样:
<SCRIPT LANGUAGE="JavaScript">
function validateLength(oSrc, args){
args.IsValid = (args.Value.length >= 8);
}
</SCRIPT>
<asp:Textbox id="text1" runat="server" text="">
</asp:Textbox>
<asp:CustomValidator id="CustomValidator1" runat=server
ControlToValidate = "text1"
ErrorMessage = "You must enter at least 8 characters!"
ClientValidationFunction="validateLength" >
</asp:CustomValidator>
【解决方案2】:
正如 Patrick 所说,您可以添加自定义验证器控件来代替自定义 javascript/jQuery 代码。然后相应地您可以添加摘要验证控件。您也可以在您的 javascript 代码中更改错误消息。请检查以下代码以供参考。
<script type="text/javascript">
function validatetxtLength(source, args)
{
var txtVal=document.getElementById('<%=txtusername.ClientID %>').value;
if(txtVal=="")
{
document.getElementById('<%=custxtValidator.ClientID %>').setAttribute("errormessage","Please Enter the User Name");
args.IsValid=false;
}
else if(txtVal.length>9)
{
document.getElementById('<%=custxtValidator.ClientID %>').setAttribute("errormessage","Username must have less than 10 characters");
args.IsValid=false;
}
else
{
args.IsValid=true;
}
return;
}
</script>
<div>
<table cellpadding="0" cellspacing="0" border="0" width="712px">
<tr>
<td colspan="3" align="center">
Validator Testing
</td>
</tr>
<tr>
<td>
Please Enter your User Name:
</td>
<td>
<asp:TextBox ID="txtusername" runat="server" Width="150px"></asp:TextBox>
</td>
<td>
<asp:CustomValidator ID="custxtValidator" runat="server" ErrorMessage="User Name must have less than 10 characters"
Text="*" ForeColor="Red" ClientValidationFunction="validatetxtLength"></asp:CustomValidator>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<asp:Button ID="btnsubmit" runat="server" Text="Submit" />
</td>
</tr>
</table>
<asp:ValidationSummary ID="ValidationSummary1" HeaderText="Please check below validations:"
runat="server" DisplayMode="BulletList" EnableClientScript="true" />
</div>
这可能对你有用。