我正在尝试使用带有 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;
}
有任何想法吗?
谢谢