如何使用javascript将javascript变量设置为flask模板变量

如何使用javascript将javascript变量设置为flask模板变量,javascript,python,flask,Javascript,Python,Flask,我想将javascript变量值设置为javascript中的flask模板变量。我正在尝试的是 $(document).on("click", ".prepopulate", function () { var myBookId = $(this).data('id'); alert(myBookId); // The value is showing proper {% set tempVar = 'myBookId' %} alert ({{tempVar}}) });

我想将javascript变量值设置为javascript中的flask模板变量。我正在尝试的是

$(document).on("click", ".prepopulate", function () {
 var myBookId = $(this).data('id');
 alert(myBookId); // The value is showing proper
 {% set tempVar = 'myBookId' %}
 alert ({{tempVar}}) 
});    

但它给出了一个错误(UndefinedError:'list object'没有属性'myBookId')。使用javascript变量在javascript中设置模板变量的方法是什么

您想像这样使用
设置

%SET{"tempVar" value="myBookId"}%

您希望像这样使用
set

%SET{"tempVar" value="myBookId"}%

您不能这样做,因为jinja在页面加载之前在服务器端运行,但javascript代码在页面加载时在客户端(浏览器)执行,因此jinja不存在
myBookId
变量(有关更多信息,请参阅答案)。实现所需功能的一种方法是使用
ajax
。请看一个示例。

您不能这样做,因为jinja在页面加载之前在服务器端运行,但javascript代码在页面加载时在客户端(浏览器)执行,因此jinja不存在您的
myBookId
变量(有关更多信息,请参阅答案)。实现所需功能的一种方法是使用
ajax
。请参阅示例。

如果查看呈现的HTML,您将看到

alert (myBookId)
除非定义名为
myBookId
的变量,否则这是无效的JavaScript。您需要将字符串值用引号括起来

alert('{{ myBookId }}')
更好的方法是让Jinja为您决定是否需要报价

alert({{ myBookId|tojson|safe }})

这将把字符串值包装成字符串,不使用整数,并使用JavaScript布尔值

如果查看呈现的HTML,您将看到

alert (myBookId)
除非定义名为
myBookId
的变量,否则这是无效的JavaScript。您需要将字符串值用引号括起来

alert('{{ myBookId }}')
更好的方法是让Jinja为您决定是否需要报价

alert({{ myBookId|tojson|safe }})

这将把字符串值包装成字符串,不使用整数,并使用JavaScript布尔值

给出的是什么错误?$(文档)。在(“单击“,”.prepopulate”上,函数(){var myBookId=$(this.data('id');警报(myBookId);//该值显示正确的{%set tempVar='myBookId'%}警报(==“+{tempVar}}”);警报提供了适当的价值。但是当我在html代码中访问它时,比如
。。。UndefinedError:'list object'没有属性'myBookId',给出了什么错误?$(文档)。在('click',“.prepopulate,”)上,函数(){var myBookId=$(this).data('id');alert(myBookId);//该值显示正确的{%set tempVar='myBookId%}alert(==“+{{tempVar}}”);警报提供了适当的价值。但是当我在html代码中访问它时,比如
。。。UndefinedError:“列表对象”没有“myBookId”属性,感谢您的快速响应。看起来这个不行。你能详细说明一下吗。感谢您的快速回复。看起来这个不行。你能详细说明一下吗。谢谢。在模板中我有下拉列表。基于下拉索引,我想使用烧瓶模板列表,例如,如果我从下拉列表中选择第一个值,它应该为第二个{{list[2]}选择类似{{list[1]}}的内容。但是索引的值需要在运行时传递。请指导我如何做到这一点。谢谢。在模板中我有下拉列表。基于下拉索引,我想使用烧瓶模板列表,例如,如果我从下拉列表中选择第一个值,它应该为第二个{{list[2]}选择类似{{list[1]}}的内容。但是索引的值需要在运行时传递。请指导我如何做到这一点。谢谢