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

210
Vistas
¿Mejor manera de ejecutar una función similar con diferentes entradas que simplemente codificar versiones ligeramente diferentes de la misma función?

Solo trato de mejorar mi calidad de codificación... probablemente haya forzado esto bruscamente, ¿me pregunto si hay una manera más eficiente de codificarlo? La tarea: obtengo entradas de 3 menús desplegables de HTML y luego paso una entrada de usuario (m_px) para obtener un retorno de una hoja de Google (drawx) y luego lo escribo de nuevo en la página web. Lo siguiente funciona bien... simplemente parece mucho código/vars para una tarea simple... ¿cómo podría codificarlo mejor? Por ejemplo, ¿cómo puedo reemplazar getDrawNumOne a Three con una sola función? Una nota adicional: en el script actual, estas funciones ascienden a getDrawNumEight(!). Gracias por el consejo/entrada.

 document.getElementById("btn").addEventListener("click",doStuff); document.getElementById("m_p1").addEventListener("onchange",getDrawNumOne); document.getElementById("m_p2").addEventListener("onchange",getDrawNumTwo); document.getElementById("m_p3").addEventListener("onchange",getDrawNumThree); function getDrawNumOne(){ var drawNumOne = document.getElementById("m_p1").value; google.script.run.withSuccessHandler(updateDrawNumOne).getDrawNo(drawNumOne); } function updateDrawNumOne(drawNumReturnOne){ document.getElementById("draw1").value = drawNumReturnOne; } function getDrawNumTwo(){ var drawNumTwo = document.getElementById("m_p2").value; google.script.run.withSuccessHandler(updateDrawNumTwo).getDrawNo(drawNumTwo); } function updateDrawNumTwo(drawNumReturnTwo){ document.getElementById("draw2").value = drawNumReturnTwo; } function getDrawNumThree(){ var drawNumThree = document.getElementById("m_p3").value; google.script.run.withSuccessHandler(updateDrawNumThree).getDrawNo(drawNumThree); } function updateDrawNumThree(drawNumReturnThree){ document.getElementById("draw3").value = drawNumReturnThree; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Descripción

En lugar de realizar múltiples devoluciones de llamada onChange, la función de devolución de llamada siempre tiene un objeto de evento pasado, aunque la mayoría de los ejemplos no lo muestran. Puede examinar el objeto de evento para ver en qué elemento se hizo clic o se modificó e ir desde allí.

En este caso uso una function getDrawNumber(evt){

Guion

 document.getElementById("btn").addEventListener("click",doStuff); document.getElementById("m_p1").addEventListener("change",getDrawNumber); document.getElementById("m_p2").addEventListener("change",getDrawNumber); document.getElementById("m_p3").addEventListener("change",getDrawNumber); function getDrawNumber(evt){ // evt is the event that occured // evt.target is the element that was changed // evt.target.id is one of the element's id google.script.run.withSuccessHandler( function(drawNumReturn) { var draw = null; switch(evt.target.id) { case "m_p1": draw = 'draw1'; break; case "m_p2": draw = 'draw2'; break; case "m_p3": draw = 'draw3'; break; } if( draw ) document.getElementById(draw).value = drawNumReturn; } ).getDrawNo(evt.target.value); }

Referencias

  • https://www.w3schools.com/jsref/event_onchange.asp
  • https://www.w3schools.com/jsref/obj_events.asp
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