Doppelte Auswahlen in verschiedenen Mehrfach-Radiobuttons vermeiden
Wenn man über verschiedenen Radiobuttons hinweg vermeiden möchte, kann man den untenstehenden Codeschnipsel anpassen und verwenden, um eine Eingrenzung zu schaffen. Sobald ein Wert gewählt ist, ist der gleiche Wert in einem anderen Radiobutton nicht mehr auswählbar (ausgegraut). (siehe Screenshot im Anhang)
Dafür werden folgende Voraussetzungen benötigt:
- nur bei Einsatz von Mehrfach-Radiobuttons
- Werte müssen genau gleich geschrieben sein
- Pflichtfelder können verwendet werden
- Kontingente können verwendet werden
- Felder müssen im Code definiert werden
Folgenden Codeschnipsel in einem Serienfeld hinterlegen und das Serienfeld über dem Profilformular platzieren:
<script>
var checkfields = ["feld13", "feld16", "feld17", "feld18", "feld19", "feld25", "feld26", "feld27", "feld28"];
function checkduplicates() {
var checkarr = [];
checkfields.forEach(function(item, index, arr) {
$('input[name=' + item + ']:checked').each(function() {
checkarr.push($(this).val());
});
});
checkfields.forEach(function(item, index, arr) {
$(":input[name='" + item + "']:not(:checked)").each(function() {
if ($.inArray($(this).val(), checkarr) !== -1) {
$(this).attr("disabled", true);
$(this).parent().css('color', '#ccc');
} else {
$(this).attr("disabled", false);
$(this).parent().css('color', '#000');
}
});
});
}
$(function() {
checkfields.forEach(function(item, index, arr) {
$(":input[name='" + item + "']").on('change', function() {
checkduplicates();
});
});
checkduplicates();
});
</script>
