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

148
Vistas
Problema al seleccionar un elemento después de crear las opciones de selección con AJAX

Uso este javascript para seleccionar una opción específica (el valor de la opción se especifica dentro de un elemento oculto):

 $("select").each(function() { var id = $(this).attr('id'); var source = 'input:hidden[name=select_'+id+']'; if ($(source).length) { var selected = $(source).val(); $(this).val(selected).change(); } });

Esto funciona bien cuando las opciones están codificadas en la fuente HTML.

Ahora necesito completar las opciones con una llamada AJAX, uso el siguiente método:

 select : function(ctrl,id) { var call = '/'+ctrl+'/'+$("#auth input[name=verify]").val(); $.getJSON(call, function(result) { $.each(result, function() { $('#'+id).append($("<option />").val(this.id).text(this.title)); }); }); },

Proceso el método de selección (AJAX) en la carga de la página, y las opciones se completan bien. Pero cuando trato de seleccionar la opción deseada, el navegador predetermina la primera opción.

He probado lo que está sucediendo colocando algunas alertas alrededor del código de la siguiente manera:

 alert($(this).val(selected)); // A alert($(this).val()); // B $(this).val(selected).change(); alert($(this).val()); // C

Cuando las opciones están codificadas, obtengo A = 3, B = nulo, C = 3, es decir, funciona. Cuando las opciones se completan a través de AJAX, obtengo A = 3, B = nulo, C = nulo, es decir, falla.

Supongo que necesito activar algún tipo de evento change() después de completar la lista de opciones con AJAX. Lo he intentado (un poco exagerado, lo sé):

 $('#'+id).append($("<option />").val(this.id).text(this.title).change());

&

 $('#'+id).append($("<option />").val(this.id).text(this.title)).change();

¿Algunas ideas? Gracias

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Problema resuelto.

Aunque estaba activando el código en el orden correcto (en teoría), debido al comportamiento impulsado por eventos de javascript, la llamada AJAX no se completó hasta después de que finalizó la inicialización de mi selección. Así que moví el código para configurar la opción seleccionada en la llamada AJAX y listo.

 select : function(ctrl,id) { var call = '/'+ctrl+'/'+$("#auth input[name=verify]").val(); $.getJSON(call, function(result) { $.each(result, function() { $('#'+id).append($("<option />").val(this.id).text(this.title)); }); var source = 'input:hidden[name=select_'+id+']'; if ($(source).length) { var selected = $(source).val(); $('#'+id).val(selected).change(); } });
about 4 years ago · Juan Pablo Isaza 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