处理此ASP.NET验证的正确方法是什么?

处理此ASP.NET验证的正确方法是什么?,asp.net,validation,Asp.net,Validation,我需要执行条件验证。逻辑应该是这样的: 如果选择单选按钮1,则需要文本框1。 如果选择单选按钮2,则需要DropDownList 1 实现这一点的最佳方法是什么?使用JQuery验证插件使用。客户端。如果使用ASP.NET控件,请调整名称以适合ASP.NET给定的名称。服务器端相对容易-检查选择了哪个收音机,并确保文本框或下拉列表的值不为空 $(function() { $('form').validate( { rules: { required-textb

我需要执行条件验证。逻辑应该是这样的:

如果选择单选按钮1,则需要文本框1。 如果选择单选按钮2,则需要DropDownList 1


实现这一点的最佳方法是什么?

使用JQuery验证插件使用。

客户端。如果使用ASP.NET控件,请调整名称以适合ASP.NET给定的名称。服务器端相对容易-检查选择了哪个收音机,并确保文本框或下拉列表的值不为空

$(function() {
   $('form').validate( {
      rules: {
         required-textbox: function() {  return $('#radio_yes:checked').size(); }
         required-ddl: function() { return $('#radio_no:checked').size(); }
      }
   });
})


<input type='radio' id='radio_yes' name='radio' value='1' /> Choice 1
<input type='radio' id='radio_no' name='radio' value='2' /> Choice 2

<input type='text' id='textinp' name='textinp' class='required-textbox' />
<select id='ddl' name='ddl' class='required-ddl'>
   <option ... />
</select>
您还可以使用CustomValidator实现这一点——同样使用jQuery客户端。同样,服务器端函数很简单,基本上与另一种情况相同

function validateTextBox(source, args)
{
    args.IsValid = $('[id$="radio_yes"]:checked').size() && $(source).val();
}

function validateDDL(source, args)
{
    args.IsValid = $('[id$="radio_no"]:checked').size() && $(source).val();
}

<asp:RadioButton ID="radio_yes" runat="server" GroupName="radio" /> Choice 1
<asp:RadioButton ID="radio_no" runat="server" GroupName="radio" /> Choice 2

<asp:TextBox ID="textbox" runat="server" />
<asp:CustomValidator ID="textboxValidator" runat="server"
     ControlToValidate="textbox"
     ClientValidationFunction="validateTextBox"
     OnServerValidate="ddl_Validate"
     Display="Static"
     ErrorMessage="*" />

<asp:DropDownList ID="ddl" runat="server">
 ....
</asp:DropDownList>
<asp:CustomValidator ID="ddlValidator" runat="server"
     ControlToValidate="ddl"
     ClientValidationFunction="validateDDL"
       OnServerValidate="textbox_Validate"
       Display="Static"
       ErrorMessage="*" />

这不是一个真正的问题。。。