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

传递Jinja变量至onclick函数时出现Uncaught SyntaxError报错求助

解决Jinja模板渲染onclick传参的语法错误

错误根源是字符串参数未加引号:Jinja渲染后,{{gerecht.gerecht}}会直接输出菜品名称的原始文本。如果菜品名包含空格(比如"Spaghetti Bolognese"),生成的JS代码会变成addItemToCart(Spaghetti Bolognese, 12.99)——这里的空格会被解析成参数分隔符,导致JS认为你传递了多个参数,最终触发括号不匹配的语法错误。

基础修正方案

给字符串参数添加单引号,确保JS能正确识别为单个字符串参数:

<button class="button" onclick="addItemToCart('{{gerecht.gerecht}}', {{gerecht.prijs}})" style="cursor: pointer"><span>Voeg toe aan winkelwagen</span> </button>

进阶处理(应对含特殊字符的菜品名)

如果菜品名可能包含单引号(比如"Joe's Special Pizza"),直接加单引号会再次触发语法错误,需要用Jinja的escape过滤器转义特殊字符:

<button class="button" onclick="addItemToCart('{{gerecht.gerecht|escape}}', {{gerecht.prijs}})" style="cursor: pointer"><span>Voeg toe aan winkelwagen</span> </button>

或者改用双引号包裹参数,同时转义内部的双引号:

<button class="button" onclick='addItemToCart("{{gerecht.gerecht|escape}}", {{gerecht.prijs}})' style="cursor: pointer"><span>Voeg toe aan winkelwagen</span> </button>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 10:02:14