2011-07-18 53 views
2

我想檢查登錄是否存在或沒有回發。asp.net ajax - 導致驗證onBlur事件

<script type="text/javascript"> 
    //validation login exists 
     function ValidateLoginExists(source, args) { 
      var exists; 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: '/account/userRegister.aspx/LoginExists', 
       data: "{'login': '" + args.Value + "'}", 
       dataType: "json", 
       async: false, 
       success: function (result) { 
        exists = result.d; 
       } 

      }); 

      args.IsValid = !exists; 
     } 
</script> 

<div> 
<b>Login</b> 
<uc:TextBox ID="txtLogin" runat="server" 
    onBlur="ValidateLoginExists(null, $('#<%=txtLogin.ClientID %>').val())" /> 

    <asp:CustomValidator runat="server" 
    ID="cvLoginValidator" 
    ClientValidationFunction="ValidateLoginExists" 
    ForeColor="Red" ErrorMessage="Login also exists" 
    ControlToValidate="txtLogin" /> 
</div> 

此代碼只適用於表單提交,但不適用於onBlur。如何在onBlur事件中致電ValidateLoginExists

回答

1

您在CustomValidator中缺少EnableClientScript =「true」。不確定這是否是問題,因爲我從未排除過它。當我回家時會嘗試。

+0

有沒有什麼辦法使用javascript將cvLoginValidator設置爲「isValid = false」? – Alexandre

+0

EnableClientScript ==默認爲「true」。但我只是刪除了onurl事件處理程序,它的工作。 – Alexandre

+0

啊,真的。我應該閱讀文檔。很高興你把事情解決了。 –