我有一个动态CheckBoxList
,可以创建一个HTML表格。我已经列出了一行来保持简单。
<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>
现在它返回一个空值。
答案 0 :(得分:1)
将spans[i]
替换为checkbox[i].parentNode.getAttribute('someValue')
。
我建议使用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();
});
});