RadioButtonListで選択された値を取得するjQueryスクリプトを機能させるために、髪の毛を抜いています。スクリプトを実行できないときは、通常のことを実行しました。他の人を切り取って空白のページに貼り付け、機能させてから、必要なページにコピーします。
私は3つの異なるスクリプトを試しましたが、選択した値を定義するために異なるアプローチを取りますが、それらを取得したいくつかのWebページへのコメントは、それらが機能していることを示唆しているように見えますが、それらのいずれも機能させることができません他の人。
このスクリプトは、認識されない式エラーをスローします。
//In head with prior reference to local copy of jquery-1.4.1.js
<script language="javascript">
$(document).ready(function() {
$("#btnSubmit").click(function() {
alert($("#RadioButtonList1").find("input[@checked]").val());
});
});
</script>
//In body
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:RadioButtonList>
<input id="btnSubmit" type="button" value="Submit" />
次のコードでは、アラートボックスに「undefined」と表示されます(リモート参照とjquery-1.4.1.jsのローカルコピーへの参照の両方で試したことに注意してください)。
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem Text="Yes" Value="1"></asp:ListItem>
<asp:ListItem Text="No" Value="2"></asp:ListItem>
</asp:RadioButtonList>
</div>
<input type="button" id="btnTest" value="Uncheck" />
</form>
</body>
<script type="text/javascript">
$('#btnTest').click(function () {
alert($('#<%=RadioButtonList1.ClientID %> input[type=radio]:checked').val());
});
</script>
</html>
また、基本的なHTMLページ(つまり、asp.netではない)で次のことを試しましたが、何もしません
//In head
$("input[@name='option_layout']").change(
function()
{
if ($("input[@name='option_layout']:checked").val())
$(".group").toggleClass("group_vert");
else
$(".group").toggleClass("group_vert");
$(this).blur();
}
);
//In body
<input type="radio" name="option_layout" value="0" checked="checked" />
<input type="radio" name="option_layout" value="1" />
IEとFiefoxの両方でテストを行っても成功しなかったにもかかわらず、.changeを使用してIEにバグがあることがわかっているため、.changeを.clickに変更してみました。また、コードを$(document).ready(function()ブロック内にラップしようとしましたが、違いはありません。関数の最初の行にアラートボックスを追加しようとしましたが、認識されない式エラーがスローされます。
ここで何がうまくいかないのか誰か分かりますか?