使用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函数,但遇到了两个棘手的问题:
语法高亮错误+多参数传递失效:
我写的模板代码里,触发错误的那行在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>多函数绑定仅执行第一个:
我还试过在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
相关产品推荐
相关产品推荐

