You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jinja模板为onclick函数传递多参数时出现'unexpected end of input'错误及相关问题求助

Jinja Template onclick Attribute Issues: Multiple Parameters Ignored & Syntax Highlighting Errors

我折腾了好一阵,还是没搞定Jinja模板和JavaScript结合的问题,来求助大家。情况是这样的:

我有一个item对象,包含id(比如'item1')和indicator(值为'yes'或'no')两个字符串属性,想通过Jinja模板把这些参数传给onclick绑定的JavaScript函数,但遇到了两个棘手的问题:

  1. 语法高亮错误+多参数传递失效:
    我写的模板代码里,触发错误的那行在VSCode中显示异常——{{item.indicator}}标红,第一个单引号还被下划线标记。更奇怪的是,当我只给change_background传一个参数时代码能正常运行,但传两个参数就完全失效,调整参数顺序或者用双引号包裹{{}}都没用。

    我的模板代码片段:

    {% for item in items %}
    <!--错误由下方直接触发的行抛出!-->
    <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>
    
  2. 多函数绑定仅执行第一个:
    我还试过在onclick里绑定两个函数,比如:

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

    结果只有第一个函数make_green会执行,第二个increment_click直接被忽略,而且控制台连错误提示都没有。

我不想对传入模板的数据做jsonify处理,感觉应该是自己在Jinja的使用细节上漏了什么,有没有大佬能指点一下?

内容的提问来源于stack exchange,提问作者justajolt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 10:43:10