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

183
Vistas
¿Cómo selecciono el valor según el valor recibido de api en jQuery?

Tengo una función de selección que mostrará el valor seleccionado según la API.

valor leído de la API

 "status": "success", "result": { "fruit_id": 5, "fruit_name": Orange, }
 <select class="form-control mb-3" id="selectFruit"> <option value="99" hidden> Fruit</option> <option value="3">Apple</option> <option value="5">Orange</option> </select>

Esto es lo que he probado

 const getKnowledgeID = (sId) =>{ axios.get(`${api}bsl?id=${sId}`) .then(function(res){ //console.log(res); if(res.data.status =='success'){ a = res.data.result; let cat_type =''; if(a.fruit_id == 5){ cat_type += ` <select class="form-control mb-3" id="selectFruit"> <option value="99" hidden> Fruit</option> <option value="3">Apple</option> <option value="5" selected>Orange</option> </select> `; } else{ cat_type += ` <select class="form-control mb-3" id="selectFruit"> <option value="99" hidden> Fruit</option> <option value="3" selected>Apple</option> <option value="5">Orange</option> </select>`; } $('#fruit').append(` <div class="col-lg-12 md-mb-50"> <div class="form-group row"> <div class="col-lg-4"> <label class="form-label"> Fruit Category</label> ${cat_type} </div> </div> </div> `); } }); }

Creo que esta no es una buena solución sobre cómo mostrar el valor seleccionado. ¿Qué pasa si tengo más de 5 <option> ? No quiero seguir repitiendo lo mismo. ¿Cómo mejoro este método para hacerlo más simple? ¿Cómo muestro que el id = 5 es el valor seleccionado en función del valor de la API?

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

0

La forma rápida de lograr lo que necesita es agregar el elemento de select sin nada seleccionado. Luego puede establecer su val() en función de fruit_id en la respuesta:

 const getKnowledgeID = (sId) => { axios.get(`${api}bsl?id=${sId}`).then(function(res) { if (res.data.status == 'success') { $('#fruit').append(`<div class="col-lg-12 md-mb-50"><div class="form-group row"><div class="col-lg-4"><label class="form-label"> Fruit Category</label><select class="form-control mb-3" id="selectFruit"><option value="99" hidden> Fruit</option><option value="3">Apple</option><option value="5">Orange</option></select></div></div></div>`); $('#selectFruit').val(res.data.result.fruit_id); } }); }

Sin embargo, la solución más óptima sería tener todo ese HTML ya presente en el DOM cuando se carga la página, oculto si es necesario. Cuando se reciba la respuesta de su llamada AJAX, muestre el contenido y luego configure val() en su lugar. Se prefiere este método porque elimina el código HTML del JS; idealmente, debería haber la menor mezcla posible de guiones.

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