Seleccionar presents de etiqueta tiene una larga lista de opciones. ¿Cómo puedo asegurarme de que el usuario seleccione al menos 2 opciones? La primera opción es obligatoria, también necesito que la segunda sea obligatoria.
Aquí está el código:
<select name="presents[]" id="presents" class="vv-select2-multiple" multiple required>
<?php foreach(get_from_group('person', 'any', -1, ['tipo' => 'member']) as $member):?>
<option value="<?= $member->ID ?>" <?php selected(get_user_person()->ID, $member->ID)?> required><?= $member->post_title; ?></option>
<?php endforeach;?>
</select>
Su etiqueta de selección presents ya es una matriz. Verifique la longitud de la matriz para asegurarse de tener al menos 2 opciones seleccionadas. Cuando se envíe el formulario, intente esto en su página php :
$presents = $_POST['presents'];
if (count($presents) >= 2) {
// Here you are sure that you have at least two options selected.
// Do whatever you wish here.
}
O bien, también puede obtener el mismo resultado con jquery.
function checkCount() {
if($('#presents option').is(':selected')) {
count = $('#presents option:selected').length;
console.log(count);
if (count >= 2) {
console.log('Selected option are greater than or equal to 2');
} else {
console.log('Selected options are less than two');
}
} else {
console.log('No options are selected!!!')
}
}
$(document).ready(function () {
checkCount();
$('#presents').on('change', checkCount);
})