当前位置:  开发笔记 > 编程语言 > 正文

使用jquery禁用asp.net验证器

如何解决《使用jquery禁用asp.net验证器》经验,为你挑选了2个好方法。

我试图使用jquery禁用验证器.

我已经看过 使用JavaScript禁用ASP.NET验证器 ,其他几个做同样的事情.

它似乎不起作用,但它的突破.

我的代码:

$('.c_MyValdiators').each(function() {

    var x = $(this).attr('id');
    var y = document.getElementById(x);
    ValidatorEnable(y[0], false);
});

我得到错误: val未定义[打破此错误] val.enabled =(启用!= false);\r \n

或者,如果我使用

$('.c_MyValdiators').each(function() {
    ValidatorEnable($(this), false); OR ValidatorEnable($(this[0]), false);
  });

我得到错误:

val.style未定义[打破此错误] val.style.visibility = val.isvalid?"隐藏":"可见";\r \n

有什么想法或建议吗?



1> Russ Bradber..:

我相信ValidatorEnable采用ASP.net ID而不是ASP.net生成的ClientID.您还需要在CodeBehind中进行验证.

这是一个例子:

特别有用的是能够启用或禁用验证器.如果您只想在某些情况下进行验证,则可能需要更改服务器和客户端上的激活,否则您将发现用户无法提交页面.

这是上一个带有字段的示例,只有在取消选中复选框时才能验证该字段:

public class Conditional : Page {
    public HtmlInputCheckBox chkSameAs;
    public RequiredFieldValidator rfvalShipAddress;
    public override void Validate() {
        bool enableShip = !chkSameAs.Checked;
        rfvalShipAddress.Enabled = enableShip;
        base.Validate();
    }
}

这是客户端的等价物:

Same as Billing

参考:http://msdn.microsoft.com/en-us/library/aa479045.aspx


感谢您的回复.MSDN链接有利于将来参考.我没有任何validate()来覆盖,因为我在ascx文件中.尽管使用了很多次尝试,我才能使用它:ValidatorEnable(document.getElementById($(this).attr('id')),true); 还有一个问题,因为这只是在客户端启用/禁用,如何禁用我的验证器,因为它们在页面回发时被禁用?有任何想法吗?

2> Troy Harris..:

我只是偶然发现了你的问题[一年后].我也想使用JQuery在页面上禁用所有验证器,这是我处理它的方式.

$('span[evaluationfunction]').each(function(){ValidatorEnable(this,false);});

我在页面上查找具有evaluatefunction属性的每个span,然后为每个span调用ValidatorEnabled.

我认为代码的$('this')部分是导致hickup的原因.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有