Jinja 如何获取复选框是否被选中

3
我在HTML表格中添加了复选框,并希望知道是否有任何复选框被选中。我有一个使用jQuery编写的脚本,可以告诉我标记了多少个复选框,但我还没有找到如何在Jinja if语句条件中使用jQuery变量,或者是否有其他方法。
所以我想得到的是: 如果任何复选框被选中,或者jQuery var> 0(我不知道哪种方式可行)。
{% if current_user.is_authenticated %}
    {% if var > 0 %}
        <form method="POST">
            <div class="form-group">
                <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </form>
    {% else %}
        <div class="form-group">
            <button type="submit" class="btn btn-primary" onclick="submiton()">Submit</button>
        </div>
    {% endif %}
{% else %}
    <div class="form-group">
        <button type="submit" class="btn btn-primary" onclick="submitoff()">Submit</button>
    </div>
{% endif %}

JQuery获取选中的复选框数量的函数:

<script>
    function qtd_checkbox() {
        var numberOfChecked = $('input:checkbox:checked').length;
    }    
</script>

var > 0 时,您需要做什么来隐藏或显示 HTML 元素? - Swati
@Swati 如果变量大于0,它将接收POST请求方法,否则我会调用另一个函数。 - Guilherme Matheus
然后尝试使用Ajax。 - Swati
@Swati 很好,谢谢你的建议!你有没有解决这个问题的方法,或者你曾经遇到过这种类型的问题吗? - Guilherme Matheus
如果涉及到后端,那么可以使用Ajax来帮助实现,但如果只需要隐藏/显示表单或div,则可以简单地使用jQuery。您可以在jQuery代码中使用if(var > 0)来执行相同的操作,并根据长度隐藏或显示表单,无需将jQuery代码放入jinja中。 - Swati
1个回答

0

我通过Python找到了我需要的解决方案,而不是使用Jinja,所以我必须使用request方法检查是否选中了任何复选框。

因此,我的解决方案是:

HTML:
...
{% for game in games.items %}
<tr>                
    <td name="ID_GAME" id="ID_GAME">{{ game.ID_GAME}}</td>
    <input type="hidden" name="ID_GAME" value="{{ game.ID_GAME }}" />
    <td name="NM_GAME"> {{ game.NM_GAME}} </td>
    <input type="hidden" name="NM_GAME" value="{{ game.NM_GAME }}" />
    <td name="NR_CRITICSCORE">{{ game.NR_CRITICSCORE}}</td>
    <td>
        <input type="checkbox" id="one_checkbox" name="one_checkbox">
    </td>
</tr>
{% endfor %}

Python:

...
if request.form.getlist('one_checkbox'):
    # Your code here
    print("success!")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接