【问题标题】:How to use a Jinja variable in a HTML script?如何在 HTML 脚本中使用 Jinja 变量?
【发布时间】:2018-10-13 04:15:17
【问题描述】:

在我的 application.py 中,我正在执行查询并在呈现 html 模板时发送结果 rows

rows = db.execute("SELECT * FROM fase1 JOIN gamesf1 ON fase1.f1game_id = gamesf1.f1game_id WHERE user_id = :userid AND fase1.f1game_id = :f1gameid",
                  userid=request.args.get("u"), f1gameid=request.args.get("g"))

return render_template("updatef1.html", rows=rows)`

在我的 html 文件中,我可以使用 rows 中的变量,如下所示并使用它们制作表单:

{% for row in rows %}
  <h2>{{(row["f1game_team1"])}} vs. {{(row["f1game_team2"])}}</h2>
  <form action="/f1updated" id="f1update" method="post">
     <input type="number" class="form-control" id="marcadort1" name="marcadort1" value={{(row["marcador_t1"])}} min="0">
     ...
  </form>
{% endfor %}

而且效果很好。

我遇到的问题是在同一个 for 循环中编写脚本 function() 时:

<script>
   let form = document.getElementById("f1update");
   form.onsubmit = function() {
      if (form.marcadort1.value == 0 & form.marcadort2.value == 0 & form.primergol.value != "No Goles")
      {
        alert("Si no hay goles, no puedes tener un pais en PRIMER GOL");
        return false;
      }
      if (form.marcadort1.value == 0 &  form.primergol.value == {{(row["f1game_team1"}}))
      {
        alert("No puedes poner PRIMER GOL al pais que tenga marcado 0");
        return false;
      }
   };
</script>

第一个 if 工作正常,因为我没有使用任何变量。但是第二个 if 使用变量 {{(row["f1game_team1"}} 并给我一个 Parsing error: Unexpected token {

关于如何在函数脚本中使用这些变量有任何帮助吗?

谢谢!

【问题讨论】:

    标签: python html scripting jinja2


    【解决方案1】:

    这行中括号的顺序是不是你漏掉了?

    if (form.marcadort1.value == 0 &  form.primergol.value == {{(row["f1game_team1"}}))
    

    我觉得应该是的

    if (form.marcadort1.value == 0 &&  form.primergol.value == {{(row["f1game_team1"])}})
    

    最好从您传递给模板的内容中初始化 JavaScript 变量,以便更轻松地调试并避免此类陷阱。

    此外,您应该查看 &amp;&amp;&amp; 运算符之间的区别,因为我确信您的意思不是您写的内容。

    【讨论】:

    • 把它粘贴到这里是我的错误...我确实有它if (form.marcadort1.value == 0 &amp;&amp; form.primergol.value == {{(row["f1game_team1"])}}) 刚刚进行了 && 更正。仍然出现同样的错误。
    • 也许尝试添加引号? if (form.marcadort1.value == 0 &amp;&amp; form.primergol.value == "{{(row["f1game_team1"])}}" )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 2014-04-19
    • 2018-07-09
    • 1970-01-01
    • 2017-10-29
    • 2010-09-07
    相关资源
    最近更新 更多