2011-10-21 22 views
1

チェックボックスリストの選択された値を取得しようとしています。jqueryのaspチェックボックスリストから選択したチェックボックスの値を取得

<asp:CheckBoxList runat="sever" ID="cblStuff" DataValueField="myID" DataTextField="myName"></asp:CheckBoxList> 
:私の問題は、私はC#でのCheckBoxListを結合していると私はハードコードした場合、それは同じように、それは

<asp:ListItem Value=".." .. /> 

マイCheckBoxListのは、このようになります「値」属性をレンダリングしていないということです

したがって、jqueryを使用してフォローを実行しようとすると、「myID」に加えて「on」のみが返されます。何か不足していますか?私はDataValueFieldのための印象を受けましたか?

$("checkboxlist selector").change(function() { 
     $(this).find(":checked").each(function() { alert($(this).val()); }); 
}); 

ありがとう: は、ここで私が使用していますJSです。

答えて

2

DataValueFieldは、サーバー側のプロパティであり、それはHTMLでレンダリングされませんので、あなたはjQueryを使って値を取得したり、任意のすることはできません他のクライアントサイドコード。私はCheckBox制御は、デフォルトではvalue属性を持っているとは思わない

$("#<%=cblStuff.ClientID%> input[type=checkbox]:checked").each(function(){ 
    var val = $(this).attr("value"); 
}); 

Where are the DataValueField values for a CheckBoxList stored?

0

あなたは、公式またはそれ以外の場合は、任意の属性を取得するjQueryのattr()メソッドを使用することができます。

$("checkboxlist selector").change(function() { 
    $(this).find(":checked").each(function() { 
     alert($(this).attr('DataValueField')); 
    }); 
}); 
+0

Mahesの回答を参照してください。残念ながら、属性 "DataValueField"はhtmlでレンダリングされません。 – Matt

0

あなたはこのようなチェックされた項目のすべてを得ることができる必要があります:

も関連する質問をご確認くださいしかし、CheckBoxListの可能性があります。どちらの場合でも、常にvalue属性を追加できます。

0
$('#<%= checkboxlist.ClientID %> input:checkbox').change(function() { 
if ($(this).is(":checked") && $(this).val() == "DesiredValue") 
     alert($(this).val()); 
}); 

これは、値がDesiredValueに設定されているかどうかをチェックします。値が変更されると、イベントが発生します。イベントを発生させるアイテムがチェックされていることを確認し、それが気になる値を持っているかどうかを確認する必要があります。