2011-10-21 184 views
1

我正在嘗試獲取複選框列表的選定值(或多個值)。我的問題是我綁定在C#中的CheckBoxList,它不是與「值」屬性渲染,因爲它會如果我是硬編碼從jQuery中的asp複選框列表中獲取所選複選框的值

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

我的CheckBoxList看起來是這樣的:

<asp:CheckBoxList runat="sever" ID="cblStuff" DataValueField="myID" DataTextField="myName"></asp:CheckBoxList> 

因此,當我嘗試使用jQuery並執行以下操作時,它僅返回「on」,與「myID」相同。我錯過了什麼嗎?我的印象是DataValueField的作用是什麼? 這裏是我用JS:

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

感謝。

回答

0

您可以使用jQuery的attr()方法來獲得任何屬性,官員或以其他方式:

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

查看Mahes的答案。不幸的是,屬性「DataValueField」不在html中呈現。 – Matt

0

你應該能夠得到所有的檢查項目是這樣的:

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

我不認爲CheckBox控制具有默認值屬性,但CheckBoxList可能。無論哪種情況,您都可以添加值屬性。

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

這將檢查值是否已設置爲DesiredValue。只要值發生變化,事件就會觸發。您必須檢查以確保引起事件觸發的項目被檢查,並且如果它具有您關心的值。

相關問題