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

303
Visualizações
"final inesperado de la entrada" cuando la plantilla de Jinja solía proporcionar múltiples parámetros para la función onclick

Estoy tratando de ejecutar una función js usando parámetros pasados a la plantilla a través de jinja, donde el elemento contiene cadenas de la siguiente manera:

 item.id = 'item1' item.indicator = 'yes' #or no

Código de plantilla:

 {% for item in items %} <!--The error is thrown by the line directly below!--> <div class='qitem' id='{{item.id}}' onclick = change_background('{{item.indicator}}', '{{item.id}}')></div> {% endfor %} <script> function change_background(indicator, id){ if (indicator == 'yes'){ document.getElementById(id).style.background='lightgreen'; }else{ document.getElementById(id).style.background='pink'; </script>

En la línea culpable de mi código, '{{item.indicator}}' está en rojo y el primer ' está subrayado en vscode.

El código funciona a pesar de esto, si solo usa UN argumento de la siguiente manera: change_background('{{item.indicator}}') (con la función correspondiente ajustada en consecuencia), pero no funciona si trato de usar dos argumentos.

El orden de los argumentos no parece importar. Tampoco usar "{{}}" en lugar de '{{}}' .

Además, si intento ejecutar dos funciones onclick: <div class='qitem' id='{{item.id}}' onclick = make_green('{{item.id}}'); increment_click('{{item.indicator}}')>

¡solo se ejecuta el primero, y el segundo se ignora sin que se arroje ningún error!

He buscado aquí y en otros lugares. Realmente no quiero jsonificar los datos que paso a la plantilla. Siento que hay un matiz que me falta cuando uso jinja.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El matiz aquí es simplemente su uso de JavaScript en HTML.

Necesitarás

 onclick="change_background('{{item.indicator}}', '{{item.id}}')"

en vez de

 onclick = change_background('{{item.indicator}}', '{{item.id}}')>

para envolver correctamente el segmento de JavaScript entre comillas.

Además, si intento ejecutar dos funciones al hacer clic:

 <div class='qitem' id='{{item.id}}' onclick = > make_green('{{item.id}}'); increment_click('{{item.indicator}}')>

Lo mismo aqui.

 onclick="make_green('{{item.id}}');increment_click('{{item.indicator}}')"
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