【发布时间】:2014-01-31 13:02:23
【问题描述】:
我想制作自定义验证器来检查给定名称的对象是否已存在于数据库中。
WS 工作正常,arg.IsValid 设置为 false 但
当我取消注释 Page_ClientValidate(); 时,函数进入无限循环(我猜它运行所有验证器函数,这是为什么)但它返回 false 但是当页面提交时,验证器开始返回 true O.o'。
如果txtname 无效,如何中止回发?
我怀疑是因为当我按下按钮时,smsCodeValidator 实际运行但由于回发而中止
<asp:CustomValidator
ID="cvtxtSMSCode"
runat="server" Display="Dynamic"
ControlToValidate="txtName"
EnableClientScript="true"
ClientValidationFunction="$U.nameValidator"
ForeColor="Red"
ErrorMessage="already exists"
ValidationGroup="vgName">
</asp:CustomValidator>
nameValidator: function (source, arg) {
$.ajax({
type: "POST",
url: "/../../../../WS/Utility.asmx/NameValidator",
data: JSON.stringify({ "toTest": arg.Value }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
if (result.d == true) {
arg.IsValid = true;
$(source).hide();
return;
}
else {
$(source).show();
arg.IsValid = false;
alert(arg.IsValid);
//Page_ClientValidate();
return;
}
}
});
},
<asp:Button ID="btnSave" ValidationGroup="vgName"
runat="server"
OnClick="btnSaveChanges_Click"
Text="Save" />
【问题讨论】:
标签: c# asp.net validation webforms