imp上的转义HTML

2024-04-19 01:33:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Flask和Jinja2模板来创建自定义表单。在这些表单中,我需要表单的一部分在字段值更改时进行更改。你知道吗

基本上,我的表单有一个select#content-type,在这里我可以选择一个内容类型,然后是一个fieldset#content,当select的值改变时,它的HTML应该改变。根据select的值,我有几个HTML模板。你知道吗

我的JS看起来像这样:

<script type="text/javascript">
    $(function () {
        $("select#content-type").change(function () {
            switch ($(this).val()) {
                case "type1":
                    var html = "{% include "type1.html" | escape %}";
                    $("fieldset#content").html(html);
                    break;
                // ...
            }
        });
    });
</script>

问题是,escape过滤器在include语句中不起作用,safe。我怎样才能做到这一点,或者有没有更好的方法来做我想做的事情?你知道吗


Tags: 模板jinja2flask表单includehtmltypescript
1条回答
网友
1楼 · 发布于 2024-04-19 01:33:37

有一些解决办法。你知道吗

实现这一点的一个简单方法是使用一个helper CSS类隐藏表单中所有依赖于内容类型的部分,例如.hide {display: none;},当客户端选择某个内容时,只需从相应的div中删除这个类:$("div#type1").removeClass("hide");

另一种方法是使用Ajax请求加载表单的内容类型相关部分。您可以定义一个类似/loadform的路由,其中服务器读取相应的模板文件并打印它。然后可以将响应HTML注入到原始表单中。你知道吗

第三种方法是在客户端选择内容类型时使用javascript提交部分填充的表单,然后呈现完整的表单。你知道吗

相关问题 更多 >