2017-07-12 8 views
0

もう一度あなたを気にしています。リピータのRadioButtonListのselectedvalueに基づいて、いくつかのテキストボックスコントロールを有効/無効にします。

次のスクリプトは、RadioButtonListコントロールがリピーター内にありますが、テキストボックスコントロールが外部にある場合に機能します。

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#rblStatus input').change(function() { 
       if ($(this).val() == "Yes") { 
        $("#txtOnwerName").prop("disabled", true); 
       } 
       else { 
        $("#txtOnwerName").prop("disabled", false); 
       } 
      }); 
     }); 
    </script> 

しかし、私が今直面しています問題は、RadioButtonListコントロールとテキストボックス(それらの約5)の両方が、Repeaterコントロール内のすべてであるということです。

この結果、RadioButtonListのYesまたはNoの値をチェックしても、テキストボックスは無効または有効になりません。

私が間違っていることは何ですか?

例:

<form ID="form1" runat="server"> 
<asp:Repeater ID="Repeater1" runat="server"> 
<ItemTemplate> 
    <asp:RadioButtonList ID="rblIssues" runat="server" RepeatDirection="Horizontal" TextAlign="Right"> 
    <asp:ListItem Text="Yes" /> 
    <asp:ListItem Text="No" /> 
    </asp:RadioButtonList><br /> 
    <asp:TextBox ID="txtOnwerName" runat="server"></asp:TextBox> 
</ItemTemplate> 
</asp:Repeater> 
</form> 
+0

ASP.NETは、必ずしもASP.NETコードで定義されているHTMLコントロールに同じ「id」を割り当てる必要はありません。 HTMLIDを要素に定義するには、 'ClientID'プロパティを使用する必要があります。 [PasteBin](https://pastebin.com)を使用して、Webページのソース(ブラウザ>右クリック>ソースの表示)を投稿してください。 –

答えて

0

は、生成されたHTMLをチェックyuoましたか?もしそうなら、あなたはコントロールのIDが改名されたのを見たでしょう。したがって、ClientIDまたはクラス名でアクセスする必要があります。

まず、ItemTemplateの各コンテンツを<div>の中に入れて開始します。今のところ、Repeaterアイテムを別のものから識別することは不可能です。

<div class="repeaterItem"> 
    <asp:RadioButtonList ID="rblIssues" runat="server" RepeatDirection="Horizontal" TextAlign="Right"> 
     <asp:ListItem Text="Yes" /> 
     <asp:ListItem Text="No" /> 
    </asp:RadioButtonList><br /> 
    <asp:TextBox ID="txtOnwerName" runat="server"></asp:TextBox> 
</div> 

今、あなたはrepeaterItemクラスに基づいてアイテムを見つけることができます。値をチェックし、TextBoxを有効/無効にします。

<script type="text/javascript"> 
    $('.repeaterItem input[type="radio"]').change(function() { 
     if ($(this).val() == "Yes") { 
      $(this).closest('div').children('input[type="text"]').prop("disabled", true); 
     } 
     else { 
      $(this).closest('div').children('input[type="text"]').prop("disabled", false); 
     } 
    }); 
</script> 
関連する問題