Ich arbeite seit zwei Tagen, um Code auf RadioButtons und Checkboxen zu erhalten. Trotzdem kein Glück.Radiobuttons und Checkboxen funktionieren nicht mit if/else in jquery
Um einen kleinen Zusammenhang zu geben: basierend auf der Auswahl über Radiobuttons, gibt es eine maximale Anzahl von Checkboxen zu überprüfen. Wenn ich zum Beispiel "Eins" aus den Radiobuttons wähle, darf ich nur ein Kontrollkästchen auswählen.
Die Auswahlmöglichkeiten sind also "None", "One" und "Two". Wenn die Leute keine auswählen, bleiben die Kontrollkästchen verborgen (das funktioniert). Wenn "Eins" oder "Zwei" ausgewählt wurde, erscheinen die Kontrollkästchen (dies funktioniert auch).
Wenn ich "Zwei" wähle, kann ich zwei Kontrollkästchen auswählen, und wenn ich "Eins" wähle, kann ich nur ein Kontrollkästchen auswählen. Das Problem ist jedoch, wenn ich von eins zu zwei wechsle, kann ich immer nur eins wählen.
Die HTML ist wie folgt:
<tr>
<td class="label">
<label for="splits">Split(s)</label>
</td>
<td class="value">
<div id="picker_splits" class="radio-select select swatch-control">
<select id="splits" class="" name="attribute_splits" data-attribute_name="attribute_splits">
<option value="">Een optie kiezen</option>
<option value="Geen">Geen</option>
<option value="Eén">Eén</option>
<option value="Twee">Twee</option>
</select>
<ul id="radio_select_splits57ac19f756a99" class="" data-attribute_name="attribute_splits">
<li>
<input class="radio-option" name="attribute_splits_57ac19f756a3b" id="radio_splits57ac19f756a99_Geen" type="radio" data-value="Geen" value="Geen" />
<label for="radio_splits57ac19f756a99_Geen">Geen</label>
</li>
<li>
<input class="radio-option" name="attribute_splits_57ac19f756a3b" id="radio_splits57ac19f756a99_Eén" type="radio" data-value="Eén" value="Eén" />
<label for="radio_splits57ac19f756a99_Eén">Eén</label>
</li>
<li>
<input class="radio-option" name="attribute_splits_57ac19f756a3b" id="radio_splits57ac19f756a99_Twee" type="radio" data-value="Twee" value="Twee" />
<label for="radio_splits57ac19f756a99_Twee">Twee</label>
</li>
</ul>
</div><a class="reset_variations" href="#">Wissen</a>
</td>
</tr>
</tbody>
</table>
<div class="wccpf-fields-group-1">
<table class="wccpf_fields_table " cellspacing="0">
<tbody>
<tr>
<td class="wccpf_label">
<label for="plaatsing_splits">Plaatsing split(s)</label>
</td>
<td class="wccpf_value">
<ul class="wccpf-field-layout-horizontal">
<li>
<label>
<input type="checkbox" class="wccpf-field" name="plaatsing_splits[]" value="linkerzijde" wccpf-type="checkbox" wccpf-pattern="mandatory" wccpf-mandatory="no" />Linkerzijde</label>
</li>
<li>
<label>
<input type="checkbox" class="wccpf-field" name="plaatsing_splits[]" value="rechterzijde" wccpf-type="checkbox" wccpf-pattern="mandatory" wccpf-mandatory="no" />Rechterzijde</label>
</li>
<li>
<label>
<input type="checkbox" class="wccpf-field" name="plaatsing_splits[]" value="achterzijde" wccpf-type="checkbox" wccpf-pattern="mandatory" wccpf-mandatory="no" />Achterzijde</label>
</li>
</ul>
<span class="wccpf-validation-message wccpf-is-valid-1">Wanneer je gekozen hebt voor een spit, mag dit veld niet leeg blijven</span>
</td>
</tr>
Und hier ist das Skript:
jQuery(document).ready(function($) {
$("#picker_splits").change(function() {
var kiesJeExtras = $("#picker_splits option:selected").val();
var verborgenKeuze = $(".wccpf-fields-group-1");
if (kiesJeExtras == "Eén") {
verborgenKeuze.show('slow');
$('input[type=checkbox]').on('change', function(e) {
if ($('input[type=checkbox]:checked').length > 1) {
$(this).prop('checked', false);
alert("allowed only 1");
}
});
} else if (kiesJeExtras == "Twee") {
verborgenKeuze.show('slow');
$("#picker_splits[value=Eén]").removeProp("selected");
$(".wccpf-field[value=linkerzijde]").prop("checked", false);
$(".wccpf-field[value=rechterzijde]").prop("checked", false);
$(".wccpf-field[value=achterzijde]").prop("checked", false);
$('input[type=checkbox]').on('change', function(e) {
if ($('input[type=checkbox]:checked').length > 2) {
$(this).prop('checked', false);
alert("allowed only 2");
}
});
} else {
verborgenKeuze.hide('slow');
$(".wccpf-field[value=linkerzijde]").prop("checked", false);
$(".wccpf-field[value=rechterzijde]").prop("checked", false);
$(".wccpf-field[value=achterzijde]").prop("checked", false);
$('.wccpf-field[name=split_lengte]').val("0");
}
});
});
Ich hoffe jemand kann mir helfen, wie ich jetzt 2 2 Tage bin stecken. Kann nicht herausfinden, was das Problem ist.
hatte ich eine Fiddle nicht excatly aber es wird Ihnen viel [Fiddle] (http://jsfiddle.net/5wadfh3o/16/) –
Nicht sicher helfen, aber nicht 'div' haben' change' Veranstaltung? Außerdem registrieren Sie den Ereignis-Listener in 'if..else', was später Probleme verursacht. – Rajesh