1
我想制作自定义验证器,用于检查给定名称的对象是否已经存在于数据库中。 WS工作正常,arg.IsValid
设置为假但是 当我取消注释Page_ClientValidate();
函数进入无限循环(我猜它运行所有验证函数,为什么)但它返回false但当页面submited时,验证器开始返回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" />