"неожиданный конец ввода", когда шаблонизатор Jinja использовался для предоставления нескольких параметров функции onclick

Я пытаюсь запустить js функцию, используя параметры, переданные в шаблон через jinja, где item содержит строки следующего вида:

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

Код шаблона:

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

В виновной строке в моем коде '{{item.indicator}}' выделено красным, а первый ' подчеркнут в vscode.

Несмотря на это, код работает, если используется только ОДИН аргумент, как показано ниже: change_background('{{item.indicator}}') (с соответствующей функцией, настроенной соответственно), но не работает, если я пытаюсь использовать два аргумента

Порядок аргументов не имеет значения. Также не имеет значения использование "{{}}" вместо '{{}}'.

Дополнительно, если я пытаюсь запустить две функции onclick: <div class='qitem' id='{{item.id}}' onclick = make_green('{{item.id}}'); increment_click('{{item.indicator}}')>

выполняется только первая, а вторая игнорируется без каких-либо ошибок!

Я искал здесь и в других местах. Я не очень хочу джсонифицировать данные, которые я передаю в шаблон. Мне кажется, что есть какой-то нюанс, который я упускаю при использовании jinja.

Нюансом здесь является просто ваше использование JavaScript в HTML.

Вам понадобится

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

вместо

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

чтобы правильно заключить сегмент JavaScript в кавычки.

Дополнительно, если я попытаюсь запустить две функции на нажатие:

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

То же самое здесь.

onclick="make_green('{{item.id}}');increment_click('{{item.indicator}}')"
Вернуться на верх