ラジオボタングループとテキスト領域を含む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>