简体   繁体   English

如何使用 javascript 触发 asp.net customvalidator

[英]How to trigger asp.net customvalidator with javascript

I am trying to trigger asp.net custom validator with java script but it is not triggering.我正在尝试使用 java 脚本触发 asp.net 自定义验证器,但它没有触发。 Other validators such as required field validators are getting triggered from the below-shown code.下面显示的代码会触发其他验证器,例如必填字段验证器。 Can anyone tell me what is wrong in the below code or why it is not triggering谁能告诉我下面的代码有什么问题或者为什么它没有触发

<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;
}

Your CustomValidator is currently set up with server-side validation code only... there is no way for the client-side ASP.Net code to be able to know the result of the validation without a post-back.您的CustomValidator当前仅设置了服务器端验证代码...客户端 ASP.Net 代码无法在没有回发的情况下知道验证结果。

For it to be client-side, you need to replicate the validation code in javascript (you must leave the server-side code in place for security reasons) and then set the ClientValidationFunction property...要使其成为客户端,您需要复制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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM