2009-05-02 16 views

Antwort

0

Clientseitig mit JQuery-Validierungs-Plugin. Passen Sie die Namen an die von ASP.NET angegebenen an, wenn Sie ASP.NET-Steuerelemente verwenden. Serverseitig ist relativ einfach - überprüfen Sie, welches Radio ausgewählt ist, und stellen Sie sicher, dass der Wert der Textbox oder der Dropdown-Liste nicht null ist.

$(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> 

Sie könnten auch dies mit einem CustomValidator - wieder jQuery Client-Seite verwenden. Auch hier sind die serverseitigen Funktionen trivial (und im Prinzip die gleichen wie im anderen Fall).

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="*" /> 
Verwandte Themen