2012-04-17 98 views
0

我有2 ASPxTextBox,ASPxValidationSummary和ASPxButton
在JS文件中,有OnPasswordValidation功能
但是,当我键入密码,然后单击选项卡按钮SetIsValid(假)
上txt_password控制不起作用,但它工作在txt_ConfirmPassword
ASP.NET密码和确认密码在ClientSideEvents

为什么?

<dx:ASPxTextBox ID="txt_password" runat="server" Password="true" AssociatedControlID="txt_password"> 
    <ClientSideEvents Validation="OnPasswordValidation" /> 
</dx:ASPxTextBox> 

<dx:ASPxTextBox ID="txt_ConfirmPassword" runat="server" Password="true" AssociatedControlID="txt_ConfirmPassword"> 
    <ClientSideEvents Validation="OnPasswordValidation" /> 
</dx:ASPxTextBox> 

<dx:ASPxButton ID="btnSubmit" runat="server" Text="Submit" ClientInstanceName="btnSubmit" onclick="btnSubmit_Click" AutoPostBack="False"> 
<ClientSideEvents Click="function(s, e) {onClickBtnSubmit();}"/> 
</dx:ASPxButton> 

function OnPasswordValidation(s, e) { 
    var objpassword = GetObj('txt_password'); 
    var objConfirmPassword = GetObj('txt_ConfirmPassword'); 
    var password = aspxGetControlCollection().Get(objpassword.id); 
    var ConfirmPassword = aspxGetControlCollection().Get(objConfirmPassword.id); 

    if (password.GetValue() == null) { 
     password.SetIsValid(false); 
     ConfirmPassword.SetIsValid(false); 
     return; 
    } 
    if (ConfirmPassword.GetValue() == null) { 
     password.SetIsValid(false); 
     ConfirmPassword.SetIsValid(false); 
     return; 
    } 
    if (password.GetValue().length > 5 || ConfirmPassword.GetValue().length > 5) { 
     if (password.GetValue() == ConfirmPassword.GetValue()) { 
      password.SetIsValid(true); 
      ConfirmPassword.SetIsValid(true); 
     } 
     else { 
      password.SetIsValid(false); 
      ConfirmPassword.SetIsValid(false); 
      password.SetErrorText = "Password must equal with Confirm Password"; 
      ConfirmPassword.SetErrorText = "Password must equal with Confirm Password"; 
     } 
    } 
    else { 
     ConfirmPassword.SetIsValid(false); 
     password.SetIsValid(false); 
    } 
} 

回答