0

ラジオボタングループとテキスト領域を含むASP.Netページがあります。

犯罪の説明のテキストエリアを切り替えて、「はい」を選択した場合に状況を説明する必要があるようにします。それ以外の場合、textareaは他のすべてのユーザーに対して非表示のままになります。

どちらもrunatサーバーであるため、Webフォームマスターページは両方に対して生成されたIDを作成します。しかし、ラジオボタンの値がわからないようです。

私は他のスレッドでいくつかの解決策を試しましたが、それらは機能していません。

これが私が試したいくつかのJQメソッドです:

//.Net throws an error and says that ClientId is not a property of the radio group.
$('#<%= Crime.ClientId %>').bind('change', function () {

   var checked = $(this).find('input:radio:checked');
   if (checked.length == 0) {
                alert("NO");
            }
   else {
                alert("YES");
            }

   var myRadio = $(this);

                           var checkedValue = myRadio.filter(':checked').val();

                            var show = myRadio.val() == "Yes";

                           var showOrHide = (myRadio.val() == 1) ? true : false;

                            alert(show + " " + showOrHide + " " + checkedValue);
                            $('#<%= CrimeDescription.ClientID %>').toggle(showOrHide);

        });

また、ASPXコントロールにクラスを適用し、これのバリエーションを試しました。

$('.CrimeToggle').click(function () {
                        //maybe traverse down to find the selected???
                    });

.Net ASPX

<asp:RadioButtonList RepeatDirection="Horizontal" CssClass="CrimeToggle" ID="Crime" runat="server">
             <asp:ListItem Value="Yes">Yes</asp:ListItem>
             <asp:ListItem Value="No">No</asp:ListItem>
</asp:RadioButtonList>

<textarea runat="server" id="CrimeDescription"></textarea>

選択したラジオボタンを選択して、その値を取得する必要があります。

入力ではなくRadioButtonListコントロールを使用する必要があります(バックエンドがコントロールに対して他のことも行っているため)。

.Netが生成する出力htmlは次のとおりです。

<table id="ctl00_BodyHolder_Crime" class="CrimeToggle" border="0">
<tbody>
<tr>
<td>
<input id="ctl00_BodyHolder_Crime_0" type="radio" value="Yes" name="ctl00$BodyHolder$Crime">
<label for="ctl00_BodyHolder_Crime_0">Yes</label>
</td>
<td>
<input id="ctl00_BodyHolder_Crime_1" type="radio" value="No" name="ctl00$BodyHolder$Crime">
<label for="ctl00_BodyHolder_Crime_1">No</label>
</td>
</tr>
</tbody>
</table>
4

2 に答える 2

0

あなたが質問で私たちに与えたテキストに基づいて、私はこのアドバイスがあなたの質問に直接答えるよりも役立つと信じています。

JQueryを使用して物事を見つけるとき、それはHTMLを探し回っています。HTMLではない.NETASPXコンテンツを投稿しましたが、それを生成します。時々、ASP.NETはあなたが予期しないことをします。

したがって、JQueryで何が機能するかを推測するのではなく、実際のHTML出力を確認し、Webブラウザーでコンソールを使用します(いくつかのブラウザーでこれが可能です)。実際のHTMLを見ながら、コンソールを使用して、必要なものを取得するJQuery式を作成します。

それなら応援!

于 2012-04-26T21:35:52.893 に答える
0

誰かが同じ問題を抱えている場合、これは私が最終的に得たものです。

$('#<%= Crime.ClientID %>').click(function () {

            var showHide = $('.CrimeToggle').find('input:radio:checked').val() == "Yes";

            $('#<%= CrimeDescription.ClientID %>').toggle(showHide);

});

どういうわけか、私が最初に働き始めたものが再び働き始めました。Visual Studioは、バグが多い場合があります。変。

于 2012-04-27T13:34:02.287 に答える