aktivieren/deaktivieren Sie alle Kontrollkästchen beim klicken einer checkbox per javascript
Ich habe ein Formular, in dem ich habe zwei Tabelle mit einigen Zeilen .
Möchte ich, dass wenn ich auf select/unselect all Kontrollkästchen über Kontrollkästchen unter das Kontrollkästchen muss überprüft werden, dass insbesondere Tabelle
Ich habe eine javascript-Funktion, die funktioniert aber, wenn ich auf einen der zwei aktivieren/deaktivieren Sie alle Kontrollkästchen als beide Tabellen Kontrollkästchen aktiviert sind.
Ich will überprüfen Sie alle Checkboxen für die jeweilige Tabelle nur.
Javascript:
<script type="text/javascript">
checked=false;
function checkedAll (frm1) {
var aa= document.getElementById('frm1');
if (checked == false)
{
checked = true
}
else
{
checked = false
}
for (var i =0; i < aa.elements.length; i++)
{
aa.elements[i].checked = checked;
}
}
//function for subscription month
</script>
meine html-ist....
<form action="" method="post" name="frm1" id="frm1">
<table>
<tr><th>Cause List</th></tr>
<?php
foreach($arr as $month)
{
?>
<tr><td><input type="checkbox" name="causelist_month" /><?php echo $month; ?></td></tr>
<?php } ?>
<tr><th><input type="checkbox" name="causelist_month" id="causelist_month" onclick="checkedAll (frm1);"/>select all/unselect all</th></tr>
</table>
<table>
<tr><th>Subscription</th></tr>
<?php
foreach($arr as $month)
{
?>
<tr><td><input type="checkbox" name="subscription_month"/><?php echo $month; ?></td></tr>
<?php } ?>
<tr><th><input type="checkbox" name="subscription_month" id="subscription_month" onclick="checkedAll2 (frm2);"/>select all/unselect all</th></tr>
</table>
</form>
bitte helfen Sie mir.
Zeigen Sie Ihre HTML.
Was, wenn Sie ändern
<form action="" method="post" name="frm1" id="frm1">
<form action="" method="post" name="frm1" id="frm1"> <table><tr><th>Ursache</th></tr> <?php foreach($arr as $Monat) { ?> <tr><td><input type="checkbox" name="causelist_month" /><?php echo $Monat; ?></td></tr> <?php } ?> <tr><th><input type="checkbox" name="causelist_month" id="causelist_month" onclick="checkedAll (frm1);"/>select all/unselect all</th></tr> </table>
Es sieht aus wie Sie haben nur eine form. Warum ist die zweite Tabelle nicht innerhalb
Was, wenn Sie ändern
aa.elements[i].checked = checked
mit aa.elements[i].checked = true
?<form action="" method="post" name="frm1" id="frm1">
<form action="" method="post" name="frm1" id="frm1"> <table><tr><th>Ursache</th></tr> <?php foreach($arr as $Monat) { ?> <tr><td><input type="checkbox" name="causelist_month" /><?php echo $Monat; ?></td></tr> <?php } ?> <tr><th><input type="checkbox" name="causelist_month" id="causelist_month" onclick="checkedAll (frm1);"/>select all/unselect all</th></tr> </table>
Es sieht aus wie Sie haben nur eine form. Warum ist die zweite Tabelle nicht innerhalb
frm2
?InformationsquelleAutor Amy | 2013-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit jQuery 1.6+, die Sie tun können,
wo
check-all
ist eine Klasse, die zwei "select/unselect all" Checkboxen haben.InformationsquelleAutor BadgerPriest
Gibt es ein paar Probleme mit dem code. Das wichtigste ist, dass du ein ein single - überprüft variable zu verfolgen, die der Staat für beide Formen. Das kann nicht funktionieren. Verwenden Sie stattdessen den status des "checkall" Kontrollkästchen für die anderen Checkboxen.
Vermuten lässt, die Sie wirklich haben zwei Formen, wenn Sie nicht verwenden Sie zwei Formen siehe unten):
Hinweis, ich habe die inline-event-handler zu
checkedAll.call(this)
.Dann Ihre Funktion sollte wie folgt Aussehen:
DEMO
Natürlich gibt es Möglichkeiten, den code zu verbessern. Zum Beispiel werden Sie wahrscheinlich wollen, fügen Sie die Logik zum deaktivieren des jeweiligen "select all" - checkbox, wenn alle, wenn die anderen Checkboxen in der Tabelle deaktiviert ist.
Ich auch empfehlen zu Lesen, der große Einführung in die Ereignisbehandlung quirksmode.org, zu erfahren, wie der Bindung von event-Handlern.
Wenn Sie nicht verwenden können, zwei Formen, die Sie haben zu finden einem anderen Vorfahren als Referenz-Punkt (d.h., aus denen Sie wählen Sie alle Checkboxen). In diesem Fall, die
table
element scheint vorzuziehen. Sie müssen durch das Dokument, bis du es findest.Die inline click-Ereignishandler muss noch geändert werden, um
checkedAll.call(this)
für diese Arbeit:InformationsquelleAutor Felix Kling
Sie code ändern Sie alle Kontrollkästchen, die im inneren
frm1
. Halten Sie zwei Tabellen in zwei separaten div ' s und geben entsprechende divs idcheckedAll
Funktion .Yup, my bad..
InformationsquelleAutor xyz
Versuchen, diese
oder finden Sie weitere details hier.
document.getElementsByTagName('input')
finden werden alleinput
Elemente auf der ganzen Seite!In reinem javascript ist da kein Weg zu finden, die checkbox direkt. nach der erste input Feld überprüfen müssen, um es als Typ "Ankreuzfeld", d.h. wenn(chk[i].type == 'checkbox').
Das ist nicht das, was ich meinte. Sie Durchlaufen alle Checkboxen auf der Seite, während der OP will nur zum Durchlaufen der Felder der jeweiligen Tabelle.
Ich verstehe; hier habe ich die Logik, die OP Folgen kann. Ich denke, er wird in der Lage, um eine Vorstellung zu bekommen 🙂
So lange, wie Sie das klar.
InformationsquelleAutor nrsharma
Auszuprobieren -
HTML -
Mein Jquery -
Versuchen Sie, Diese mit Hilfe von Jquery
DURCH Javascript -
Versuchen Sie, Diese
Bitte finden Sie in den aktualisierten Antworten
document.getElementsByTagName('input')
erhalten alle Checkboxen, nicht nur die der jeweiligen Tabelle. Außerdem ruftgetElementsByTagName
oft ist ziemlich ineffizient.InformationsquelleAutor Ishan Jain
versuchen, diese DEMO
if (checked == true){...} else {...}
- Anweisung. Einstellungchecked
zutrue
wenn estrue
scheint nicht mehr notwendig zu sein.Bedingung entfernt, Danke 🙂
InformationsquelleAutor Pragnesh Chauhan