2011-11-18 32 views
0

我有3個文本框當前密碼,新密碼和確認密碼,3個RequiredFieldValidator爲每個文本框和一個comparevalidator爲新的和確認密碼。如何在ASP.NET中一起使用CustomValidator和RequiredFieldValidator?

我也使用CustomValidator,因爲我想檢查當前密碼是否正確。所以我創建了一個檢查當前密碼的javascript函數。

步驟:

1.如果當前的密碼不正確,它顯示警報消息「當前密碼不正確」,這是確定。

2.但它向前移動並顯示警告消息「新密碼和確認密碼字段必須相同。」如果兩者都不匹配。

我想是不應該移動進一步將其顯示在步驟消息1.

任何人都知道如何做到這一點?

感謝

PS:

錯誤

enter image description here

回答

0

您可以在腳本禁用驗證這樣的:

var CmpValidator = document.getElementById('<%=CompareValidator1.ClientID%>'); 
ValidatorEnable(CmpValidator, false); 

後來的客戶端點擊提交按鈕,您可以啓用它像:

var CmpValidator = document.getElementById('<%=CompareValidator1.ClientID%>'); 
ValidatorEnable(CmpValidator, true); 
+0

我試着按照你給出的解決方案給我錯誤。你可以在我的問題中看到錯誤。看到更新的問題 – Sukhjeevan

+0

它的'javascript'錯誤。請張貼相關腳本。 – NaveenBhat

+0

是的,它的工作,謝謝兄弟 – Sukhjeevan

1

禁用CompareValidator,禁用客戶端腳本,並能夠在當前密碼的CustomValidator的服務器驗證方法依賴於密碼驗證結果:

標記:

Current password: <asp:TextBox runat="server" ID="CurrentPassword" TextMode="Password" /> 
<asp:CustomValidator runat="server" ID="CurrentPasswordValidator" ValidateEmptyText="true" 
ControlToValidate="CurrentPassword" OnServerValidate="CurrentPasswordValidator_ServerValidate" 
ErrorMessage="current password is not correct" /> 
<br /> 
New Password: <asp:TextBox runat="server" ID="NewPassword1" TextMode="Password" /> 
<asp:RequiredFieldValidator runat="server" ControlToValidate="NewPassword1" >*</asp:RequiredFieldValidator> 
<br /> 
Confirm Password: <asp:TextBox runat="server" ID="NewPassword2" TextMode="Password" /> 
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="NewPassword2" >*</asp:RequiredFieldValidator> 
<asp:CompareValidator runat="server" ID="CompareNewPasswordsValidator" 
    ControlToValidate="NewPassword2" ControlToCompare="NewPassword1" EnableClientScript="false" 
    ErrorMessage="New Password and Confirm Password Fields must be identical" Enabled="false" /> 
<br /> 
<asp:Button ID="ResetPasswordButton" runat="server" Text="Reset Password" OnClick="ResetPasswordButton_Click" /> 

代碼:

protected void CurrentPasswordValidator_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    if (args.Value == "123") 
    { 
     args.IsValid = true; 
     CompareNewPasswordsValidator.Enabled = true; 
    } 
    else 
    { 
     args.IsValid = false; 
     CompareNewPasswordsValidator.Enabled = false; 
    } 
} 

protected void ResetPasswordButton_Click(object sender, EventArgs e) 
{ 
    if (IsValid) 
    { 

    } 
} 
+0

這很好,但是,我更喜歡jQuery。 –

相關問題