1

我在 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>

我只想Unshare在用户单击复选框时显示按钮。

4

1 回答 1

0

首先在您的模板中添加更多 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';
    }
}

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

于 2013-01-31T09:27:40.690 回答