由於我必須要用JS來抓CheckBoxList選取的總值,因為本身JS不好,就上網google一下。
JavaScript
function Get_Selected_Value() {
var ControlRef = document.getElementById('<%= CheckBoxList1.ClientID %>');
var CheckBoxListArray = ControlRef.getElementsByTagName('input');
var spanArray = ControlRef.getElementsByTagName('span');
var sValue=0;
for (var i = 0; i < CheckBoxListArray.length; i++) {
var checkBoxRef = CheckBoxListArray[i];
if (checkBoxRef.checked == true) {
var labelArray = checkBoxRef.parentNode.getElementsByTagName('label');
if (labelArray.length > 0) {
sValue+= parseInt(spanArray[i].alt);
}
}
}
return sValue;
}
<asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal">
<asp:ListItem alt="2">一</asp:ListItem>
<asp:ListItem alt="4">二</asp:ListItem>
<asp:ListItem alt="8">三</asp:ListItem>
<asp:ListItem alt="16">四</asp:ListItem>
<asp:ListItem alt="32">五</asp:ListItem>
<asp:ListItem alt="64">六</asp:ListItem>
<asp:ListItem alt="1">日</asp:ListItem>
</asp:CheckBoxList>
要注意的是ListItem有給alt值Javascript才抓得到,如果是在cs給value值在client只會顯示on而已。
後來在Firefox上測試時, sValue一值顯示NaN,好像不支援.alt的屬性
就改用JQuery來抓alt就可以抓得到了,JQuery真是好用阿 :p
function Get_Selected_Value() {
var value =0;
var itemCount = ('input', '#CheckBoxList1').length;
var labItems = ('label', '#CheckBoxList1');
var spanArray2 = ('#CheckBoxList1 span');
for (var i = 0; i < itemCount; i++) {
if (('#CheckBoxList1_' + i)[0].checked == true) {
value += parseInt(('#CheckBoxList1_' + i).parent().attr('alt'));
}
}
return value;
}

