如何使用JavaScript触发asp.net customvalidator

我正在尝试使用Java脚本触发asp.net自定义验证器,但未触发。其他验证器(例如必填字段验证器)将从下面显示的代码中触发。谁能告诉我下面的代码出了什么问题或为什么它没有触发

<script type="text/javascript">
    function CheckValidation(btn) {
        var valid = false;
        if (Page_ClientValidate('RtRegValGrp')) {
            alert('valid');
            __doPostBack(btn.name,"");
         } else {
             alert('not valid');
         }
     }
</script>

<asp:TextBox ID="txtCompanyName" runat="server" MaxLength="100"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
    ControlToValidate="txtCompanyName" 
    ValidationGroup="RtRegValGrp" 
    ErrorMessage="Company name is required !"
    ForeColor="red" Display="Dynamic" />
<asp:CustomValidator ID="txtCompanyNameValidator" runat="server"
    ControlToValidate="txtCompanyName"
    ValidationGroup="RtRegValGrp"
    OnServerValidate="BlacklistValidator" 
    ForeColor="Red" Display="Dynamic">
</asp:CustomValidator>

<asp:Button ID="Button1" runat="server" CssClass="goldBtn" Text="SUBMIT" 
    OnClientClick="CheckValidation(this); return false;" 
    OnClick="Button1_Click" />

//server side code
protected void BlacklistValidator(object source,ServerValidateEventArgs args)
{
    args.IsValid = false;
}

ming870312 回答:如何使用JavaScript触发asp.net customvalidator

您的CustomValidator当前仅使用服务器端验证代码进行设置...客户端ASP.Net代码无法在没有后续验证的情况下知道验证结果回来。

要使其成为客户端,您需要复制 JavaScript中的验证代码(出于安全原因,您必须保留服务器端代码)并然后设置ClientValidationFunction属性...

<asp:CustomValidator ValidationGroup="RtRegValGrp" ID="txtCompanyNameValidator"
  ForeColor="Red" OnServerValidate="BlackListValidator" Display="Dynamic"
  ControlToValidate="txtCompanyName" runat="server"
  ClientValidationFunction="BlackListValidatorFnc" />

<script>
  function BlackListValidatorFnc(src,args) {
    args.IsValid = false;
  }
</script>
本文链接:https://www.f2er.com/3145353.html

大家都在问