我需要隐藏/显示动态构建的表的部分,如下所示。如果未选中“复选框”,我想用class =“newtable”显示或隐藏表格。但是,我只想隐藏与循环迭代相对应的实例。因此,如果选中该复选框,则用户会看到额外的信息并且必须填写它。如果没有,他们就看不到它并且没有进一步的操作。该逻辑将应用于表的每一行。我可以看到如何使用javascript来隐藏“newtable”的所有实例,但我只想隐藏那些与被检查的“复选框”相对应的实例。非常感谢任何帮助。
顺便说一句,我必须长期构建这个“形式”,因为我的变量来自不同的模型。无法看到任何方式使用django表单,模型表单或formset来完成。谢谢!
<table>
<tr>
{% for x,y,z in stuff%}
<td>{{ x.foo }}</td>
<td>{% for item in y %}
<input type="checkbox" name="stuff.{{ item.id }}" class="item" value="True" checked/> {{ item }}<br />
{% endfor %}
</td>
</tr>
<tr><td align=center colspan="5">
<table class="newtable" border=1>
<tr><td>
<input type="radio" name="pref_id{{ z.id }}" value="1" checked> blah<br>
{% endfor %}
</td>
</tr>
</table>
</tr>
{% endfor %}
</table>
答案 0 :(得分:1)
您可以使用jQuery轻松隐藏表格.newtable下的所有选中复选框。
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$(".newtable input[type=checkbox]:checked").hide();
});
</script>
</head>
<body>
<table class="newtable">
<tr><td><input type="checkbox" checked/></tr>
<tr><td><input type="checkbox"></tr>
</table>
</body>
如果你宁愿隐藏整行,你可以使用
$(".newtable input[type=checkbox]:checked").parent().parent().hide()
或者你可以在生成表单时隐藏它们,假设你要设置一些复选框来检查取决于item.checked
{% if item.checked %}
<input type="checkbox" checked style="display:none" ..../>
{% else %}
<input type="checkbox" ..../>
{% endif %}