Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

68
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda