0

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()ブロック内にラップしようとしましたが、違いはありません。関数の最初の行にアラートボックスを追加しようとしましたが、認識されない式エラーがスローされます。

ここで何がうまくいかないのか誰か分かりますか?

4

2 に答える 2

1

はjQuery1.3の属性セレクター@から非推奨/削除されたため、最初の試みは次のようになります。

$(document).ready(function() {
  $("#btnSubmit").click(function() {
    alert($("#RadioButtonList1 input[checked]").val());
  });
});

または、:checkedセレクターを使用してもう少し単純化します。

$(function() {
  $("#btnSubmit").click(function() {
    alert($("#RadioButtonList1 :checked").val());
  });
});

また、出発点として、3回目の試行であなたが求めているものは次のとおりです:)

于 2010-08-30T10:18:52.297 に答える
1

ありがとう、ニック、あなたの答えは私をそこに連れて行った...最終的に:)

あなたの最初のコード

alert($("#RadioButtonList1 input[checked]").val()); 

まったく機能せず、アラートボックスに「未定義」と表示されます。

2番目のコード

alert($("#RadioButtonList1 :checked").val());

基本的なasp.netページでは機能しましたが、ここで使用しているマスター/子ページでは機能しませんでした。に変更しました

alert($("#<%=RadioButtonList1.ClientID %>").find("input[checked]").val());

そしてそれはうまくいきます。

于 2010-08-30T17:13:46.543 に答える