我是JS和Jinja2世界的新人,所以请考虑一下。
我有一个表单,其中嵌入了另一个Popup表单。弹出窗体代码如下所示:
{% block script %}
<script type="type/html" data-tpl="popup_form">
<div>...</div>
<div>...</div>
<div>...</div>
<div>...</div>
<div>
<input class="Btn" type="button" value="Update"/>
</div>
</script>
<script>
// Calling another script SCRIPT_2
</script>
{% endblock script %}
在那种形式中,我想添加一个时间范围选择器,其中已经有另一个文件中定义的JS函数。为此,我在“更新”的上方添加了一个Jinja2宏。按钮。宏功能如下所示:
{% block script %}
<script type="type/html" data-tpl="popup_form">
<div>...</div>
<div>...</div>
<div>...</div>
<div>...</div>
{{ time_range(form) }} // Macro Calling From Here
<div>
<input class="Btn" type="button" value="Update"/>
</div>
</script>
<script>
// Calling another script SCRIPT_2
</script>
{% endblock script %}
{% macro time_range(form) %}
<div>...</div>
<script>
$(function() {
$('#id_start_alert_from, #id_end_alert_at')
.each(modules.timeSelector);
});
</script>
{% endmacro %}
现在,我已按照我的意愿在表单中添加了时间范围行,但是更新了#39;按钮已经弹出Popup。我知道问题是因为Jinja2认为脚本已经结束,因为</script>
标签来自Macro,但我不知道如何解决这个问题。
为了调用JS timeSelector函数,我尝试了不同的东西,但没有任何工作,我需要一些帮助。