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

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

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 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