我有一个ASP.NET网络表单。除了自定义验证器之外,我的所有验证器都可以完成它们的工作。据我所知,我的代码是正确的,但他没有显示错误。看起来他没有调用我的javascript函数或我的代码隐藏函数。
这是我的代码
的javascript
<%-- javascript--%>
<script type="text/javascript" >
function validateNaam(oSrc, args) {
var voorNaam = document.getElementById("Voornaam");;
var regex = /^[a-zA-Z ]{2,30}$/;
if (voorNaam.match(regex)) {
alert("Gelieve geen ongeldige tekens te gebruiken voor uw naam aub.");
return false;
}
}
</script>
aps自定义验证器
<%-- Gebruikersnaam label, textbox en validator --%> <asp:Label ID="Label1" runat="server" AssociatedControlID="Email">Voornaam: </asp:Label>
<asp:TextBox runat="server" ID="Voornaam" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="Voornaam"
CssClass="field-validation-error" ErrorMessage="The user name field is required." />
<%-- Custom validator voor naam --%>
<asp:CustomValidator ID="CustomValidatorGebruikersnaam" runat="server"
CssClass="field-validation-error" ErrorMessage="Uw naam bevat ongeldige tekens"
ValidationGroup="AllValidators" OnServerValidate="CustomValidatorGebruikersnaam_ServerValidate"
ClientValidationFunction="validateNaam" ControlToValidate="Voornaam">!!</asp:CustomValidator>
和背后的代码
protected void CustomValidatorGebruikersnaam_ServerValidate(object source, ServerValidateEventArgs args)
{
try
{
args.IsValid = Validatie.ControleerNaam(args.Value.ToString());
}
catch
{
args.IsValid = false;
}
}
答案 0 :(得分:1)
您的自定义验证程序上有一个验证组。
您尚未发布的按钮代码必须没有验证组。
删除此ValidationGroup =“AllValidators”,它应该可以工作。