Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

191
Vistas
jQuery previene el cambio para seleccionar

Quiero evitar que se cambie un cuadro de selección si se aplica una determinada condición. Hacer esto no parece funcionar:

 $('#my_select').bind('change', function(ev) { if(my_condition) { ev.preventDefault(); return false; } });

Supongo que esto se debe a que, en este punto, la opción seleccionada ya ha cambiado.

¿Cuáles son otras formas de hacer esto?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Prueba esto:

http://jsfiddle.net/qk2Pc/

 var my_condition = true; var lastSel = $("#my_select option:selected"); $("#my_select").change(function(){ if(my_condition) { lastSel.prop("selected", true); } }); $("#my_select").click(function(){ lastSel = $("#my_select option:selected"); });
over 4 years ago · Santiago Trujillo Denunciar

0

En caso de que alguien necesite una versión genérica de la respuesta de Mattsven (como hice yo), aquí está:

 $('select').each(function() { $(this).data('lastSelected', $(this).find('option:selected')); }); $('select').change(function() { if(my_condition) { $(this).data('lastSelected').attr('selected', true); } }); $('select').click(function() { $(this).data('lastSelected', $(this).find('option:selected')); });
over 4 years ago · Santiago Trujillo Denunciar

0

Si simplemente desea evitar la interacción con la selección por completo cuando my_condition es verdadera, siempre puede capturar el evento mousedown y hacer que su evento lo evite allí:

 var my_condition = true; $("#my_select").mousedown(function(e){ if(my_condition) { e.preventDefault(); alert("Because my_condition is true, you cannot make this change."); } });

Esto evitará que ocurra cualquier evento de cambio mientras my_condition sea verdadero.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda