Как использовать переменную Jinja в HTML-скрипте? - PullRequest
0 голосов
/ 03 мая 2018

В моем application.py я делаю запрос и отправляю результаты строк при рендеринге HTML-шаблона:

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 файле я могу использовать переменные внутри строк , как указано ниже, и создать форму, используя их:

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

И это хорошо работает.

У меня проблема при написании функции скрипта () внутри того же для цикла:

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

Первый , если работает нормально, так как я не использую никаких переменных. Но во втором случае используется переменная {{(row ["f1game_team1"}} и выдается ошибка синтаксического анализа : неожиданный токен {

Любая помощь в том, как использовать эти переменные внутри скрипта функции?

Спасибо!

1 Ответ

0 голосов
/ 03 мая 2018

Вы не просто упустили порядок скобок в этой строке?

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

Я думаю, что это должно быть

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

Рекомендуется инициализировать переменные JavaScript из того, что вы передаете в шаблон, чтобы упростить отладку и избежать таких ловушек.

Кроме того, вы должны посмотреть на разницу между & и && операторами, так как я уверен, что вы не имели в виду то, что написали.

...