Javascript 通过js启用/禁用aspx验证程序在代码隐藏中不保持true?

Javascript 通过js启用/禁用aspx验证程序在代码隐藏中不保持true?,javascript,jquery,asp.net,validation,customvalidator,Javascript,Jquery,Asp.net,Validation,Customvalidator,我想知道关于仅通过js禁用这些,而不必在代码背后添加重复代码,我缺少了什么 我正在使用此代码禁用/启用验证器: validator: { enable: function (id) { console.log('enable',id); var validator = document.getElementById(id); ValidatorEnable(validator, true);

我想知道关于仅通过js禁用这些,而不必在代码背后添加重复代码,我缺少了什么

我正在使用此代码禁用/启用验证器:

validator: {
        enable: function (id) {
            console.log('enable',id);
            var validator = document.getElementById(id);
            ValidatorEnable(validator, true);
        },
        disable: function (id) {
            console.log('disable',id);
            var validator = document.getElementById(id);
            ValidatorEnable(validator, false);
        }
    },
它工作得很好,直到我回发来保存一些数据。。。这些已禁用的验证器未被禁用

因此,如果IsPostBack为true,我必须在OnLoad()中运行一些重复代码,以禁用我已经通过js禁用的验证器

编辑:删除任何代码,因为它不是获得答案所必需的。答:服务器端还必须禁用元素,由于以下原因无法显式执行:可在此处找到,感谢@ConnersFan:

  • 某些验证控件可能不支持客户端脚本。一个很好的例子:如果您使用的CustomValidator具有服务器验证功能,但没有客户端验证功能
  • 安全考虑。有人可以很容易地使用脚本获取页面并禁用或更改它。您不应该依靠脚本来阻止坏数据进入您的系统,而只是为了向用户提供更直接的反馈。因此,如果您使用的是CustomValidator,则不应在没有相应服务器验证功能的情况下提供客户端验证功能
如中所示,在客户端启用/禁用验证器的首选方法是使用
ValidatorEnable

var validator = document.getElementById(id);
ValidatorEnable(validator, false);
在服务器端,您还必须明确地启用/禁用验证器(我认为您无法避免):


此更改将保留在客户端代码中,与回发时不保留的Javascript代码中的更改不同。

我欣赏首选方法,我已在代码中应用此方法删除旧的“属性设置”方式,但未成功。我看到了同样的行为想法?@ConnersFan-公平地说,新的首选方法是多余的,但行为没有改变。-谢谢。@ConnersFan,好的-我注意到当我这样做时,它是有效的,你能链接指定这个的文档吗?-谢谢你的确认。(遗憾的是它在js中无法明确工作)不客气。我在服务器端添加了一个关于更改的注释(我没有关于最后一个的具体参考,我只是在测试它时观察它)。
validator.Enabled = false;