如何使用javascript将javascript变量设置为flask模板变量
我想将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}}) });
$(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]}}的内容。但是索引的值需要在运行时传递。请指导我如何做到这一点。谢谢