2011-03-15 49 views
1

我需要訪問客戶端中CheckBoxList中各個複選框的鍵值。我該怎麼做?下面的代碼用於選擇文本,但是我想要訪問下面的整數值。如何訪問CheckBoxList中的ListItems的鍵

<asp:CheckBoxList id=rbGender runat="server" Width="200px" RepeatDirection="Horizontal"> 
<asp:ListItem Value="-1">-1</asp:ListItem> 
<asp:ListItem Value="0">Female</asp:ListItem> 
<asp:ListItem Value="1">Male</asp:ListItem> 
</asp:CheckBoxList> 



function getCheckBoxListItemsChecked(elementId) { 
      var elementRef = document.getElementById(elementId); 
      var checkBoxArray = elementRef.getElementsByTagName('input'); 
      var checkedValues = ''; 

      for (var i = 0; i < checkBoxArray.length; i++) { 
       var checkBoxRef = checkBoxArray[i]; 

       if (checkBoxRef.checked == true) { 
        var labelArray = checkBoxRef.parentNode.getElementsByTagName('label'); 
        if (labelArray.length > 0) { 
         if (checkedValues.length > 0) 
          checkedValues += ', '; 
         checkedValues += labelArray[0].innerHTML; 
        } 
       } 
      } 

      return checkedValues; 
     } 


     function CopyItemsToTextBox() { 
      var checkedItems = getCheckBoxListItemsChecked('<%= rbGender.ClientID %>'); 
      alert('Items checked: ' + checkedItems); 

      return checkedItems; 
     } 

回答

2

嘗試用於單元素選擇

$("input:checked","[id$='rbGender']").val() 

用於多個這種jQuery代碼和此。通過每一個選擇的複選框

$.each($("input:checked","[id$='rbGender']"), function(k, v) { 
    alert(v.value); 
}); 
+0

+1這個一會工夫每次都會循環,我想是這樣 – 2011-03-15 22:35:34

+0

你介意轉換是到平面的Javascript? – Kobojunkie 2011-03-15 23:08:11

+0

@Kobojunkie他使用的選擇器是jQuery特定的使用'jquery通配符選擇器'。這很好,因爲這可以從asp.net中選擇自動生成的ID。 「[id $ ='rbGender']」意味着id以'rbGender'字符串結尾。順便說一句,你把問題標記爲「jquery」 – 2011-03-17 17:06:27