我正在使用asp.net验证控件来验证用户输入。我想要的是使用验证控件生成的错误消息更改标签文本。
<asp:Label ID="Label1" runat="server" Text="Whats your name"></asp:Label>
<asp:TextBox ID="nameB" Width="322px" Height="30px" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="business" runat="server" ErrorMessage="Please tell us your name." ControlToValidate="nameBuisness" CssClass="errMsg" Display="Dynamic"></asp:RequiredFieldValidator>
谢谢。
答案 0 :(得分:1)
一种方法是处理提交按钮的OnClientClick
- 事件并调用javascript函数,如:
<script type="text/javascript">
function displayValidationResult() {
// Do nothing if client validation is not available
if (typeof (Page_Validators) == "undefined") return;
var LblName = document.getElementById('LblName');
var RequiredName = document.getElementById('RequiredName');
ValidatorValidate(RequiredName);
if (!RequiredName.isvalid) {
LblName.innerText = RequiredName.errormessage;
}
}
</script>
<asp:Label ID="LblName" runat="server" Text="Whats your name"></asp:Label>
<asp:TextBox ID="TxtNameBusiness" Width="322px" Height="30px" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredName" ValidationGroup="business"
runat="server" ErrorMessage="Please tell us your name." ControlToValidate="TxtNameBusiness"
CssClass="errMsg" Display="None"></asp:RequiredFieldValidator>
<asp:Button ID="BtnSumbit" runat="server" Text="Submit"
OnClientClick="displayValidationResult()" ValidationGroup="business" />
我使用了一些可用的ASP.NET客户端验证方法。我还将控件重命名为更有意义,并添加了一个提交按钮。
答案 1 :(得分:1)
如果您要求使用内置的ASP.Net验证控件进行此验证,则需要使用ASP.Net CustomValidator控件。使用ASP.Net RequiredFieldValidator控件无法完成此操作。要执行您指定的验证,请在页面上放置一个CustomValidator控件,以便标记如下所示:
<asp:Label ID="Label1" runat="server" Text="Whats your name"></asp:Label>
<asp:TextBox ID="nameB" Width="322px" Height="30px" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustValidator" runat="server" ControlToValidate="nameB"
ValidateEmptyText="true" ErrorMessage="Please tell us your name."
onservervalidate="CustValidator_ServerValidate" Display="none" >**</asp:CustomValidator>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" CausesValidation="true" />
然后您需要编写自定义验证器。服务器端验证代码如下所示:
protected void CustValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
if (string.IsNullOrWhiteSpace(args.Value))
{
Label1.Text = CustValidator.ErrorMessage;
args.IsValid = false;
}
else
{
Label1.Text = "Whats your name";
args.IsValid = true;
}
}
此自定义验证程序将为您提供所需的行为。
通常,当您使用CustomValidator控件时,您应该同时执行服务器端验证(用于安全性)和客户端验证(以获得更好的UI体验)。要获得客户端验证,您需要在javascript和/或jQuery中编写客户端函数以进行类似验证,然后将其分配给自定义验证器的ClientValidationFunction。
有关CustomValidator控件的更多信息,请参见MSDN documentation。