0

jQueryを使用して、選択したASP.NETCheckBoxListアイテムのインデックスとそのテキスト値を取得する方法

リストされているコードを使用しましたが、機能しませんでした。

最初の2行は、「未定義」の文字列を含むメッセージを返します

var index = $('#<%=chkListGroups.ClientID %>').attr("selectedIndex");
alert(index);

次の2行は、空のメッセージを返します。

var text = $('#<%=chkListGroups.ClientID %>').val();
alert(text);
4

2 に答える 2

2
var indices = '';
$('#<%=chkListGroups.ClientID %> input:checkbox').each(function (index) { 
   if ($(this).filter('input:checkbox:checked').length == 1) { 
       indices += (index + ' '); 
   }
});
alert(indices);

インデックスを印刷する必要があります。

「テキスト値」とは、ASP.NET内のListItem要素のValueプロパティから返されるものを意味する場合、Webページに自動的に直接含まれることはありません。この問題に対処する1つの方法は、ページの.NETコード内にValueプロパティのjavascript配列を作成し、上記のようなものを使用して配列内の値を検索することです。配列が「valueArray」と呼ばれる場合、上記の「if」の本文のコードを次のように置き換えることができます。

indices += (valueArray[index] + ' ');

これがお役に立てば幸いです。ご質問をお待ちしております。

編集(提出者によるコメントに続く):

チェックされた各項目の表示可能なラベルが必要な場合、これは機能するはずです。

var text = $('#<%=chkListGroups.ClientID %> input:checkbox:checked').siblings('label').text();
alert(text);
于 2010-08-24T20:17:39.853 に答える
0

編集:元の質問を読み間違えました-それに応じてこの回答を更新します。

ASP.NETは、checkBoxListコントロールを一連のチェックボックスとしてレンダリングします(firebugを使用して、レンダリングされたコントロールを簡単に確認できます)。指定したIDに基づいて、各チェックボックスのIDが割り当てられると思います。例えば:

<asp:CheckBoxList id="list1" runat="server">
    <asp:ListItem>One</asp:ListItem>
    <asp:ListItem>Two</asp:ListItem>
    <asp:ListItem>Three</asp:ListItem>
</asp:CheckBoxList>

HTMLで次のようにレンダリングされます。

<table id="list1">
    <tr><td><input id="list1_0" type="checkbox" /><label for="list1_0">One</label></td></tr>
    <tr><td><input id="list1_1" type="checkbox" /><label for="list1_1">Two</label></td></tr>
    <tr><td><input id="list1_2" type="checkbox" /><label for="list1_2">Three</label></td></tr>
</table>

ボックスがチェックされているかどうかは、次の方法で判断できます。

$('#list1_0').attr('checked')

それらはすべて、次の方法で見つけることもできます。

$('#list1 input')

...次に、jQueryの反復を使用して、すべてのチェックボックスをスキャンします。jQueryを使用して、ターゲットのチェックボックスコントロールの次の「ラベル」コントロールを見つけ、そこから実際のテキストを抽出することもできると思います。stackoverflowのより大きなjQueryブレインの1つは、正確なセレクター構文を支援する必要があります-私はjQueryに比較的慣れていないので、頭から離れてそれを知りません。

元の応答(単純なselectionListsに適用)

これにより、選択したインデックスが取得されます。

$("#SomeListID").attr("selectedIndex")

これにより、選択した値が取得されます。

$("#SomeListID").val()
于 2010-08-24T19:12:54.330 に答える