我有一個禁用的自定義驗證程序,我想要使用jQuery啓用它。
我該怎麼做?下面
的代碼適用於RequiredFieldValidators而不是CustomValidators:如何啓用禁用自定義驗證器使用jquery
ValidatorEnable($('#cvPass'), true);
該如何解決?
編輯:
我使用服務器端驗證,而不是客戶端。
當我們使用客戶端驗證時,啓用和禁用自定義驗證器沒有問題。
感謝@Josh拜見
感謝的好簡單的代碼提前
我有一個禁用的自定義驗證程序,我想要使用jQuery啓用它。
我該怎麼做?下面
的代碼適用於RequiredFieldValidators而不是CustomValidators:如何啓用禁用自定義驗證器使用jquery
ValidatorEnable($('#cvPass'), true);
該如何解決?
編輯:
我使用服務器端驗證,而不是客戶端。
當我們使用客戶端驗證時,啓用和禁用自定義驗證器沒有問題。
感謝@Josh拜見
感謝的好簡單的代碼提前
我沒有跟你已經嘗試了任何問題。下面是一個簡單的例子是爲我工作:
HTML:
<asp:TextBox runat="server" ID="txt_Test" />
<asp:CustomValidator runat="server" ID="val_Test" ValidateEmptyText="true" ClientValidationFunction="MyValidation" ControlToValidate="txt_Test" ErrorMessage="Test"></asp:CustomValidator>
<asp:Button runat="server" ID="btn_Test" Text="Test" onclick="btn_Test_Click" />
<input type="button" value="disable validator" onclick="disableValidator()" />
<input type="button" value="enable validator" onclick="enableValidator()" />
Javscript:
function enableValidator() {
ValidatorEnable($('[id$=val_Test]')[0], true);
}
function disableValidator() {
ValidatorEnable($('[id$=val_Test]')[0], false);
}
function MyValidation(sender, args) {
if ($('[id$=txt_Test]').val() == "")
args.IsValid = false;
}
編輯:隨着新的信息,我相信我知道是什麼是問題。在服務器驗證開始之前,頁面會重新加載,導致驗證程序被設置爲禁用,因爲根據最後一個已知狀態的服務器。這是因爲驗證器不是控件的值被髮回到服務器。您可以設置一個可以告訴服務器驗證控件的值的hiddenField。
我在我的答案中發佈了一條額外的評論,我想這會告訴你可能發生的事情。 –