Ich habe zwei Checkbox-Listen, ich möchte die Anzahl der markierten Elemente von diesen erhalten. Unten ist mein Code:
<div id="divAreaListingByLocation">
<asp:CheckBoxList ID="chklstArea" CssClass="chkarea" RepeatColumns="6" RepeatDirection="Vertical"
runat="server" OnSelectedIndexChanged="chklstArea_SelectedIndexChanged" AutoPostBack="true">
</asp:CheckBoxList>
</div>
<asp:Repeater ID="repRooms" runat="server" OnItemDataBound="repRooms_ItemDataBound">
<ItemTemplate>
<div style="height: 100%; float: none;">
<asp:Panel ID="pnlRoomheader" runat="server" Style="width: 98%; background-color: #86ADD6;
color: #4A4A4A; height: 20px; margin-top: 10px; text-align: left; padding: 5px;
font-size: 15px; font-weight: bold;">
<asp:Label ID="lblAreaName" runat="server"></asp:Label>
<asp:Label ID="lblAreaId" Style="display: none;" runat="server"></asp:Label>
</asp:Panel>
<div id="divRoomListingByLocation" style="padding-bottom: 10px; padding-top: 10px;">
<asp:CheckBoxList ID="chkRoomList" CssClass="chkRooms" RepeatColumns="6" RepeatDirection="Vertical"
runat="server">
</asp:CheckBoxList>
<asp:Label ID="lblRoomMessage" Text="This Area does not have any room." ForeColor="Red"
runat="server"></asp:Label>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
Was ich tun möchte, ist: Wenn der Benutzer keines der Kontrollkästchen dieser beiden aktiviert hat, wird eine Warnung angezeigt, die besagt, dass auf Knopfdruck eines der Kontrollkästchen aus beiden Listen aktiviert ist.
Ich habe es mit class versucht, aber die Klasse wird an das Tabellen-Rendering in HTML der Checkbox-Liste angehängt.
4 Antworten
Da Sie die Kontrollkästchenliste verwenden, wird die angegebene Klasse auf die Tabelle und nicht auf das Kontrollkästchen angewendet. Dort müssen Sie verwenden
$(".chkarea").find("input:checked").length;
Dies gibt die Anzahl aller Kontrollkästchen zurück, die für eine Kontrollkästchenliste mit der Klasse "chkarea" aktiviert sind.
var n = $("input:checked").length;
Angenommen, die asp-Seite gibt eine Reihe von <input>
Elementen zurück.
Ein Beispiel finden Sie in dieser Geige.
<script type="text/javascript">
function fnc()
{
x=document.getElementById("chkdiv").elements;
for(i=0;i<x.length;++i)
{if(x[i].type=='checkbox' && x[i].checked)
alert("checked");
}
}
</script>
<form id="chkdiv">
<input type="checkbox" id="chk1">
<input type="checkbox" id="chk2">
<button id="button" onClick="fnc()">click</button>
</form>
Sie können einen Platzhalter für die Checkbox-Listen-ID verwenden, da die von der Checkbox-Liste generierten IDs mit dieser ID beginnen.
count = $("[id^=chklstArea] , [id^=chkRoomList]").filter(function(){
if($(this).is(':checked'))
return $(this);
}).length;