2012-11-28 77 views
0

所以我有两个单选按钮,一个是'是',另一个是'没有',我有一个文本框。所有这些都是asp.net控件。如果选中“是”单选按钮,我试图在文本框中输入一个值,如果选中“否”单选按钮则不需要它。我需要使用jQuery规则和消息来做到这一点。有谁知道如何为以下控件做到这一点?如何验证,如果一个字段包含一些值根据另一个字段jquery规则消息

<asp:RadioButton runat="server" ID="rbYes" GroupName="radioGroup" Text="Yes"/> 
<asp:RadioButton runat="server" ID="rbNo" GroupName="radioGroup" Text="No"/> 
<asp:TextBox runat="server" ID="txtBox"/> 
+0

我们需要只是更多的信息。如果你可以发布你到目前为止的jQuery,你更有可能得到你正在寻找的答案。 – Tom

回答

0

非常感谢,

这是我如何解决我的问题:

  1. 要禁用或启用文本框,我把下面这段代码$(document).ready()部分在jQuery脚本块:

    if($('#<%= rbNo.ClientID %>').is(':checked')) { 
        txtBox.attr('disabled', true); 
    } else { 
        txtBox.removeAttr('disabled'); 
    } 
    
  2. 要规则添加到JQuery验证(也在$(document).ready()代码块):

    var rules = { 
        txtBox: { 
         required: true, 
         messages: {required: "Required field when Yes is checked"} 
        } 
    }; 
    
    $('#<%= rbNo.ClientID %>').click(function (e) { 
        if (this.checked) { 
         txtBox.attr('disabled', true); 
         addOrRemoveRules(rules, "remove"); 
        } 
        else { 
         txtBox.removeAttr('disabled'); 
         addOrRemoveRules(rules, "add"); 
        } 
    }); 
    
  3. 现在$(document).ready()代码块外,并在javascript代码块,您需要包括添加或删除规则和消息所需要的功能:

    function addOrRemoveRules(rulesObj, operation){ 
    if (operation == "add") { 
         for (var item in rulesObj){ 
          $('#'+item).rules('add',rulesObj[item]); 
         } 
        } 
        else{ 
         for (var item in rulesObj){ 
          $('#'+item).rules('remove'); 
         } 
        }   
    } 
    
0

看看.NET控件的ClientID属性。例如,以确定“是”单选按钮被选中,使用

var yesIsChecked = $('#<%=rbYes.ClientID%>').is(':checked'); 

同样,以测试文本框为空,则使用

var txtBoxIsEmpty = $('#<%=txtBox.ClientID%>').val() == ""; 

您可以用例如组合使用一个自定义验证器来完成你的目标。更多关于自定义验证器的信息here。接近底部,文章提到ClientValidationFunction属性,它应该包含执行验证逻辑的函数的名称。该参考MSDN是here

相关问题