Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

286
Views
"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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!