javascript - 如何在隐藏时从 ASP.NET 验证中排除控件(显示 :none;)?

标签 javascript jquery asp.net regex validation

如何在隐藏时从 ASP.NET 验证中排除控件?

  • 复选框用于在两个文本框之间切换。

  • 其中一个是必需的不是两个

  • 我希望必填字段在隐藏时禁用。

我知道 enabled="false"visible="false" 创建了这种行为,但是我想保持 jquery 淡入淡出动画。

我试图将 disabled false 属性添加到 javascript 但无法让它工作。 在线找到的其他解决方案似乎无法实现所需的功能。

ASP.NET

<div class="Hide1">
  <asp:TextBox ID="tb" runat="Server"/>
  <asp:RequiredFieldValidator ID="rfv1" RunAt="Server" ControlToValidate="tb"/>
</div>

<div class="Hide2">
  <asp:TextBox ID="tb2" runat="Server"/>
  <asp:RequiredFieldValidator ID="rfv2" RunAt="Server" ControlToValidate="tb2"/>
</div>

<asp:Button ID="btn" runat="Server" Text="GO"/>

JQUERY

  $('.tb').hide();
  $('#CB').change(function () {
    if ($(this).is(':checked')) {
      $('.tb2').fadeOut(100, function () {
        $('.tb').fadeIn();
      });
    } else {
      $('.tb').fadeOut(100, function () {
        $('.tb2').fadeIn();
      });
    }
  });

最佳答案

你可以这样试试

if (document.getElementById('<%=CB.ClientID%>').checked) {
   ValidatorEnable(document.getElementById('<%= rfv1.ClientID %>'), true);
   ValidatorEnable(document.getElementById('<%= rfv2.ClientID %>'), false);
   $('.tb2').fadeOut(100, function () {
        $('.tb').fadeIn();
      });
 }
 else {
       ValidatorEnable(document.getElementById('<%= rfv1.ClientID %>'), false);
       ValidatorEnable(document.getElementById('<%= rfv2.ClientID %>'), true);
       $('.tb').fadeOut(100, function () {
          $('.tb2').fadeIn();
          });
      }

注意:rfv1 和 rfv2 是两个必需的验证器的 ID,请避免为验证器提供相同的 ID。

更新

if (document.getElementById('<%=CB.ClientID%>').checked) {
       ValidatorEnable(document.getElementById("#<%= rfv1.ClientID %>"), true);
       ValidatorEnable(document.getElementById("#<%= rfv2.ClientID %>"), false);
       $('.tb2').fadeOut(100, function () {
            $('.tb').fadeIn();
          });
     }
     else {
           ValidatorEnable(document.getElementById("#<%= rfv1.ClientID %>"), false);
           ValidatorEnable(document.getElementById("#<%= rfv2.ClientID %>"), true);
           $('.tb').fadeOut(100, function () {
              $('.tb2').fadeIn();
              });
          }

关于javascript - 如何在隐藏时从 ASP.NET 验证中排除控件(显示 :none;)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23953017/

相关文章:

javascript - 采用数组并将所有零移动到末尾,保留其他元素的顺序的方法

javascript - ExpressJS 中间件被调用两次

jquery - 带有灰度 jquery 插件和简单 jquery 函数的 CSS 问题(无 float 图像)

c# - GridView 选定的行单元格值变为空

javascript - 我是否正确使用了这个 Promise 功能

javascript - 如何判断页面加载时选中了哪些复选框?

javascript - 防止事件冒泡(针对 javascript onclick 事件)

javascript - 如何在 jquery 中制作背景幻灯片?

jquery - 停止在 ipad asp.net 上回发提交按钮

c# - 带有 Windows Azure SQL 数据库的 SignalR Hub