javascript - 仅当通过复选框选择文件时才在 Django 模板中显示按钮?

标签 javascript django templates

我在 Django 模板中动态获取复选框,如下所示:

 <td><input type="checkbox" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" /></td>
              <td><label for="choice{{ forloop.counter }}">{{ choice.file_name }}</label></td>

有一个像这样的取消共享按钮:

<button>Unshare</button>

我想仅在用户单击复选框时显示取消共享按钮。

最佳答案

首先向您的模板添加更多 id,以便您可以识别元素。

<table id="choices">
{% for choice in choices %}
    <td><input type="checkbox" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" /></td>
    <td><label for="choice{{ forloop.counter }}">{{ choice.file_name }}</label></td>
{% endfor %}
</table>

然后给按钮一个id和一个内联样式 -

<button id="unshare_button" style="display: none;">Unshare</button>

然后使用以下 JavaScript(一旦出现任何一个,就会显示该按钮) 单击复选框 - 如果未选中它们,则不会隐藏按钮)。

var choices_table = document.getElementByID('choices');
var checkboxes = choices_table.getElementsByTagName('input');
var unshare_button = document.getElementByID('unshare_button');
for (var i = checkboxes.length; i > 0; i--) {
    checkboxes[i].addEventListener('click', function() {
        unshare_button.style.display = 'inline';
    }
}

恐怕我还没有检查过这段代码,但它应该可以给你一个想法。

关于javascript - 仅当通过复选框选择文件时才在 Django 模板中显示按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14621325/

相关文章:

javascript - 如何清空select2之前的数据?

javascript - 在页面加载时随机定位 div

javascript - 第一个 child 表现不同

mysql - Django : select all columns when innerjoin using extra without foreignkey

c++ - 在 static_assert 输出中集成类型名称?

C++ 对模板结构声明歧义!

javascript - 如果文本框中的值已更改,如何在 jQuery/javascript 中设置监听器来监视?

python - 突出显示主动导航 : django 1. 4.2

python - 从 Django UserCreateForm 中删除 help_text

c++ - C++ 模板特化中声明的范围