asp.net – 如何在隐藏字段(TextBox)上触发RequiredFieldValidator

我认为这是一个常见问题.我有一个表单,我使用jQuery动态显示/隐藏字段,具体取决于一些单选按钮.

我在所有字段上都有requiredFieldValidator,但如果隐藏了ControlTovalidate(使用jQuery),我不希望它们被触发.

那可能吗?提前致谢.

编辑:这是解决方案,感谢Marek.如果您因为MasterPages而拥有奇怪的clientID,则可能不是很明显

这是ASPX

<asp:TextBox ID="txtName" runat="server" />
<asp:requiredFieldValidator ID="vldName" ControlTovalidate="txtName" runat="server" ErrorMessage="You must enter Name!" />
...
<asp:Button ID="btnSubmit" runat="server" Text="Submit" />

这是jQuery

$(function() {
  $('#ctl00_cphContent_btnSubmit').click(function() {
    if (!$('#ctl00_cphContent_txtName').is(':visible'))
      ValidatorEnable(ctl00_cphContent_vldName,false);
  });
});

希望它会让某人的生活更轻松

解决方法

如果我没记错的话,有一个叫做ValidatorEnable(validatorClientId,isEnabled)的函数允许你通过javascript禁用/启用ASP.NET验证器.您可以在表单提交之前使用jQuery来禁用所有不可见的验证器.

这里有一些关于客户端API的文档,可以从http://msdn.microsoft.com/en-us/library/aa479045.aspx的验证器获得

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...