为了验证登录字段(在注册表中)我使用customValidator
<asp:CustomValidator id="uniqueLoginValidator" class="validator" runat="server" ControlToValidate="tbUserName" ErrorMessage="Login duplicate" ClientValidationFunction="LoginValidate"/>
对于验证登录,我需要使用wcf,因此决定使用web-methods
<script type="text/javascript">
function LoginValidate(oSrc, args) {
var login = $(".loginField").val();
PageMethods.ValidateLogin(login,OnRequestComplete, OnRequestError);
return;
}
function OnRequestComplete(result, userContext, methodName) {
return;
}
function OnRequestError(error, userContext, methodName) {
if (error != null) {
alert(error.get_message());
}
</script>
我的网络方法如:
[WebMethod]
public static bool ValidateLogin(string login)
{
//wcf consuming
return res;
}
为了成功验证,我应该在ClientValidationFunction上设置args,但是我只在callBack上获得结果验证。那么如何设置args进行验证工作呢。
答案 0 :(得分:1)
问题在于行
PageMethods.ValidateLogin(login,OnRequestComplete, OnRequestError);
启动对页面方法的异步调用并立即返回:在调用完成之前它不会阻塞。
有关讨论和解决方案(新的验证程序控件),请参阅http://www.codeproject.com/KB/validation/Async_CustomValidator.aspx。