2012-12-28 94 views
0

我有一個動態CheckBoxList創建一個HTML表格。我列出了一行以保持簡單。返回動態CheckBoxList按鈕點擊跨度ID點擊

<table id="checkBoxList1" border="0"> 
    <tr> 
     <td><span someValue="neededValue"><input id="checkBoxList1_0" type="checkbox" name="checkBoxList1$0" checked="checked" /><label for="checkBoxList1_0">TestTopic1</label></span></td> 
    </tr> 
</table> 

我也有一個ASP按鈕,單擊時將運行JavaScript。我需要該函數返回"neededValue"。這裏是ASP按鈕和javascript函數:

<asp:Button ID="btnSubscribe" runat="server" Text="Update Subscriptions" OnClientClick="return GetSelectedItem()"/> 


<script type="text/javascript"> 
function GetSelectedItem() { 
    var CHK = document.getElementById("<%=checkBoxList1.ClientID%>"); 
    var checkbox = CHK.getElementsByTagName("input"); 
    var spans = CHK.getElementsByTagName("span"); 
    for (var i = 0; i < checkbox.length; i++) { 
     if (checkbox[i].checked) { 
      alert("Selected = " + spans[i]); 
     } 
    } 
    return false; 
} 
</script> 

現在它返回一個空值。

回答

1

checkbox[i].parentNode.getAttribute('someValue')代替spans[i]

我推薦使用jQuery。它可以簡化您的代碼,例如:

<asp:Button ID="btnSubscribe" runat="server" Text="Update Subscriptions" /> 

$(function() { 
    $('#<%=btnSubscribe.ClientID%>').click(function (e) { 
     $('#<%=checkBoxList1.ClientID%> input:checked').each(function() { 
      alert('Selected = ' + $(this).closest('span').attr('someValue')); 
     }); 
     e.preventDefault(); 
    }); 
}); 
+0

簡單且正確。謝謝! – EFeit