Ich habe mehrere Gruppen von Kontrollkästchen (jeweils mit mehreren Kontrollkästchen), und ich muss jQuery (oder einfach altes Javascript) verwenden, um sicherzustellen, dass das Formular nicht senden kann, wenn mindestens 1 Kontrollkästchen aus jeder Gruppe von Kontrollkästchen aktiviert ist. Wie kann ich das machen? Wenn Gruppe A nicht mindestens eins hat, würde ich einen Fehler mit der Angabe "Bitte wählen Sie mindestens eine aus Gruppe A", etc. usw. auswerfen. Danke!Stellen Sie sicher, dass mindestens ein Kontrollkästchen für mehrere Gruppen von Kontrollkästchen aktiviert ist.
Antwort
Sie können dies umgehen, indem Sie eine CSS-Klasse definieren, um jedes Ihrer Kontrollkästchen-Elemente zu "gruppieren" und dann jede Gruppe zu überprüfen, ob mindestens eines der Elemente aktiviert ist, und den Benutzer entsprechend zu alarmieren.
könnten einige Beispiel-Markup wie folgt aussehen:
<form>
<pre>Group A</pre>
<input class='group-a' data-name='Group A' type='checkbox' value='1' /> 1
<input class='group-a' data-name='Group A' type='checkbox' value='2' /> 2
<pre>Group B</pre>
<input class='group-b' data-name='Group B' type='checkbox' value='1' /> 1
<input class='group-b' data-name='Group B' type='checkbox' value='2' /> 2
<pre>Group C</pre>
<input class='group-c' data-name='Group C' type='checkbox' value='1' /> 1
<input class='group-c' data-name='Group C' type='checkbox' value='2' /> 2
<hr />
<input type='submit' />
</form>
Zusammen mit dem folgenden Bit von jQuery, die Ihre eigentliche Logik behandelt:
<script>
$(function(){
$('form').submit(function(e){
// Store each group that has been processed
var checkedGroups = [];
// Check each group
$(':checkbox[class^="group-"]').each(function(){
// Store a reference to the current class
var currentGroup = $(this).attr('class');
// If the current group hasn't been checked, check it
if($.inArray(currentGroup,checkedGroups) == -1){
var atLeastOneChecked = $(':checkbox.' + currentGroup + ':checked').length > 0;
// If at least one isn't checked, alert the user
if(!atLeastOneChecked){
// Alert the user and stop everything going forward
alert("Please ensure that at least one option from " + $(this).data('name') + " is checked.");
e.preventDefault();
return false;
}
// If we have made it this far, then this group has been checked
checkedGroups.push(currentGroup);
}
});
});
});
</script>
Sie müssen CSS nicht unbedingt verwenden Klassen zur Handhabung der Auswahl. Sie können leicht data-*
Attribute verwenden, um damit umzugehen, also liegt es nur an Ihren persönlichen Vorlieben.
Sie können see an example of this code in action here.
Das funktioniert wie ein Zauber! Gibt es eine Möglichkeit, die Warnung ohne das Attribut data-name anzugeben? Meine einzige Option ist, das Markup direkt in den Wordpress-Texteditor zu stellen, der dieses Attribut aus irgendeinem Grund ausblendet. Wenn Sie sich fragen, ist es mir (oder irgendjemandem) nicht möglich, Plugins hinzuzufügen oder Wordpress-Dateien für diese Website zu bearbeiten. – Steve
Nevermind, habe ich nur das Attribut zu jeder Eingabe mit jquery hinzugefügt. – Steve
Danke! Du bist ein Lebensretter – Steve
- 1. Sicherstellen, dass mindestens ein Kontrollkästchen aktiviert ist
- 2. Selen, stellen Sie sicher, dass alle Kontrollkästchen aktiviert sind
- 3. Wie kann überprüft werden, dass mindestens ein Kontrollkästchen in mehreren Kontrollkästchen aktiviert ist?
- 4. Polymer Eisenform validieren mindestens ein Kontrollkästchen ist aktiviert
- 5. Jquery - überprüfen, ob mindestens ein Kontrollkästchen aktiviert ist
- 6. Wenn das Kontrollkästchen aktiviert ist, wählen Sie ein Radio
- 7. Wenn Kontrollkästchen aktiviert ist, führen Sie "etwas"
- 8. Zeigen Sie ein Paneloverlay, wenn ein Kontrollkästchen aktiviert ist
- 9. Verhindern, dass Kontrollkästchen aktiviert/deaktiviert sind
- 10. Standard-Kontrollkästchen aktiviert Optionsfeld
- 11. Wenn ich ein Kontrollkästchen ankreuze, werden alle Kontrollkästchen aktiviert (Swift)
- 12. JQuery Datatables Kontrollkästchen aktiviert
- 13. Datensatz aktualisieren, wenn das Kontrollkästchen aktiviert ist
- 14. So aktivieren Sie das Textfeld Kontrollkästchen aktiviert
- 15. JAVAFX-Ereignis ausgelöst, wenn ein Kontrollkästchen aktiviert
- 16. Set Yii Szenario, wenn Kontrollkästchen aktiviert ist
- 17. Kontrollkästchen aktiviert, wenn Listenansicht Element ausgewählt ist
- 18. Javascript, um ein Kontrollkästchen zu aktivieren, wenn ein anderes Kontrollkästchen aktiviert ist
- 19. überprüfen, dass Kontrollkästchen für ein Textfeld erforderlich ist
- 20. Javascript aktiviert oder deaktiviert ein Kontrollkästchen?
- 21. Färbung nicht aktiviert Kontrollkästchen android
- 22. Eingabefelder löschen, wenn das Kontrollkästchen aktiviert ist
- 23. Erstellen Sie mehrere Kontrollkästchen php
- 24. So stellen Sie sicher, dass eine Variable ein Objekt ist
- 25. Kontrollkästchen unbestimmt für Kontrollkästchen groupbox
- 26. Deaktivierung Auswahl Dropdown, wenn ein Kontrollkästchen aktiviert ist
- 27. Jquery-Code, wenn das Kontrollkästchen aktiviert ist, wählen Sie alle anderen Kontrollkästchen - Arbeiten mit Laravel
- 28. Stellen Sie sicher, dass ein Subprozess in Cocoa ungültig ist
- 29. AngularJS Kontrollkästchen aktiviert benutzerdefinierten Wert
- 30. Senden von Werten an db, wenn mehrere Kontrollkästchen aktiviert sind
Geben Sie alle Kontrollkästchen in derselben Gruppe dieselbe Klasse an. Dann können Sie '$ (": checkbox.groupClass: checked "). Length 'verwenden, um die Anzahl der Checkboxen in dieser Gruppe zu erhalten. Schleife über alle Klassen, und wenn einer von ihnen "0" ist, scheitert die Validierung. – Barmar