Hallo Ich habe diese Schleife hier, die Checkboxen von Websites zu Boden zu Räumen generieren und wenn ich auf den Seiten alle Etagen überprüft werden, aber umgekehrt, wenn ich manuell Überprüfen Sie alle Stockwerke, aber das Kontrollkästchen "Standort" ist nicht aktiviert. Bitte helfen Sie meine Fehler behebenJquery Kontrollkästchen nicht markiert, wenn alle Unterpunkte in C# MVC markiert sind
<div class="form-group ">
<ul id="siterecord">
@for (int i = 0; i < Model.SASites.Count; i++)
{
@*Generate the sites*@
<li>
@Html.CheckBoxFor(m => m.SASites[i].IsCheck, new { @class = "parent" })
@Html.LabelFor(m => m.SASites[i].IsCheck, Model.SASites[i].SiteName)
@Html.HiddenFor(m => m.SASites[i].SiteId)
@Html.HiddenFor(m => m.SASites[i].SiteName)
@*Generate the floors for each site*@
@for (int j = 0; j < Model.SASites[i].SAFloors.Count; j++)
{
<div style="margin-left:50px; clear:both;">
<label>Floor @Model.SASites[i].SAFloors[j].FloorName</label>
</div>
<br />
<div style="margin-left:20px;">
<ul class="suiterecord">
@for (int k = 0; k < Model.SASites[i].SAFloors[j].SARooms.Count; k++)
{
<li style="float:left;">
@Html.CheckBoxFor(m => m.SASites[i].SAFloors[j].SARooms[k].IsCheck, new { @class = "child chkboxCss" })
<div class="ARSLabel">
@Html.LabelFor(m => m.SASites[i].SAFloors[j].SARooms[k].IsCheck, Model.SASites[i].SAFloors[j].SARooms[k].RoomName)
@Html.HiddenFor(m => m.SASites[i].SAFloors[j].SARooms[k].RoomId)
@Html.HiddenFor(m => m.SASites[i].SAFloors[j].SARooms[k].RoomName)
</div>
</li>
if ((k + 1) % 5 == 0)
{
@Html.Raw("</ul><div style='clear:both'></div><br><ul class='suiterecord'>");
}
}
</ul>
<div style='clear:both'></div><br>
</div>
}
</li>
}
</ul>
</div>
JQuery Skript
<script>
$('.parent').click(function() {
var isChecked = $(this).is(':checked');
var children = $(this).closest('li').find('.child');
$.each(children, function (index, item) {
$(this).prop('checked', isChecked);
});
});
$('.child').click(function() {
var parent = $(this).closest('li').find('.parent');
var isChecked = $(this).is(':checked');
if (!isChecked) {
// the parent must be unchecked
parent.prop('checked', false);
} else {
// check if all siblings have the same checked status
var siblings = $(this).siblings('.child');
var total = siblings.length;
var matches = siblings.filter(function() {
return $(this).prop('checked') == isChecked;
}).length;
if (matches === total) {
parent.prop('checked', isChecked);
}
}
})
jetzt Mein Code mit Überprüfung der Eltern fein arbeitet das ganze Kind Artikel überprüft wird. aber es funktioniert nicht umgekehrt, wobei alle Kind überprüfen die Eltern nicht aktiviert ist
Ausgang enter image description here
Können Sie bitte Ihre Ausgabe HTML-Struktur, Es ist schwer zu verstehen, wie Ihre HTML-Struktur kommen wird. – Samir
@Samir Ich habe ein Bild des Ergebnisses – Zayle
hochladen Können Sie bitte fügen Sie die HTML-Struktur, mit einfach durch Bild (von Ihnen gepostet) ist sehr schwierig, die HTML-Struktur zu bekommen, haben wir mit der Eltern/Kind-Kombination zu spielen. Wenn Sie die HTMl bereitstellen, wird es einfach sein, das Skript zu schreiben. – Samir