0

我正在尝试使用带有 ASP.net webforms CustomValidator 的 jQuery AJAX 来验证电子邮件文本框是否模糊。

<asp:TextBox ID="Email" runat="server" ClientIDMode="Static">
<asp:CustomValidator ID="EmailRegisteredValidatation" ControlToValidate="Email" runat="server"
                        ValidationGroup="RegisterUserValidationGroup"  ClientValidationFunction="CheckEmailRegistration"
                        ErrorMessage="Email Already Registered"></asp:CustomValidator>


 function CheckEmailRegistration(sender, args)
    {
        $.post("/api/CheckEmailRegistration/", { Email: $("#Email").val() })
        .done(function (data) {
          args.IsValid = data;
        });
    }

该脚本不起作用。它不会更改验证状态。我确定返回的数据是真还是假。但我猜测 AJAX 结果的延迟会导致问题。

这工作正常:

  function CheckEmailRegistration(sender, args)
        args.IsValid = false;
    }

这也不起作用:

function CheckEmailRegistration(sender, args)
    {
    $.post("/api/CheckEmailRegistration/", { Email: $("#Email").val() })
    .done(function (data) {
      args.IsValid = false;  //even hardcoded doesn't work
    });
    }

在范围之外也不起作用:

  function CheckEmailRegistration(sender, args)
    {
        var _value;
        $.post("/api/CheckEmailRegistration/", { Email: $("#Email").val() })
        .done(function (data) {
            _value = data;
            }
        });

        args.IsValid = _value;
    }

有任何想法吗?

谢谢

4

0 回答 0