我有一个禁用的自定义验证器,我想用jquery启用它 我怎么能这样做? 下面的代码适用于RequiredFieldValidators但不适用于CustomValidators:
ValidatorEnable($('#cvPass'), true);
解决方案是什么?
修改
我正在使用服务器端验证,而不是客户端验证
当我们使用客户端验证时,启用和禁用自定义验证器没有问题
感谢@Josh Mein的简单代码
提前致谢
答案 0 :(得分:1)
我对你所尝试的内容没有任何疑问。这是一个适合我的简单示例:
<强> 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,其值可以告诉服务器验证控件。