Considere el siguiente evento:
$(`#selectpicker).on('change', function(){ if(condition) {} else { //canceel event change } });Cómo cancelar el evento de cambio en función de una condición específica, por lo tanto, manteniendo el mismo valor del selector de selección.
¿Es esto lo que estás buscando? Establezca una variable para el valor actual y, si se selecciona un valor no deseado, estableceremos el valor del campo de selección en el valor reciente.
<select id="selectpicker"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> let currentValue = $('#selectpicker').val(); $('#selectpicker').on('change', function(){ let newValue = $(this).val(); if(newValue == 3){ console.log("3 is not allowed"); $(this).val(currentValue); return; } currentValue = $('#selectpicker').val(); })También puede deshabilitar ciertas opciones con la palabra clave "deshabilitado", pero tenga en cuenta que esto se puede omitir fácilmente desde las herramientas de desarrollo.
<option disabled value="3">3</option>Si bien puede detener la ejecución de la devolución de llamada con return false , el valor ya habrá cambiado cuando se active este evento. Si desea volver al valor anterior, debe almacenarlo de alguna manera, ya sea en una variable o en una propiedad de data en el elemento. Luego, puede restablecer el valor en su condición o actualizar la variable cuando no se cumpla su condición de cancelación.