我已经在我的页面中使用CheckboxSelectMultiple小部件呈现了一个Django表单字段,现在,在页面加载时,我想要隐藏所有未选中的复选框选项。我设法隐藏了复选框,但我不知道如何隐藏与复选框相关联的标签。我的问题是,我怎么能隐藏这个标签呢?下面是我的代码: model.py
class model_A(models.Model):
user = models.ManyToManyField(User, blank=True)
form.py:
class EditForm(forms.ModelForm):
prefix = 'edit_form'
class Meta:
model = model_A
fields = '__all__'
widgets = {'user':forms.CheckboxSelectMultiple}
html:
<div class="field">
{{form.user}}
</div>
javascript:
$('input[type=checkbox]:not(:checked)').hide();
在浏览器中的浏览页面源:
<ul id="id_settings-user">
<li><label for="id_settings-user_1"><input type="checkbox" name="settings-user" value="1" id="id_settings-user_1" style="display: none;">
Person A</label>
</li>
<li><label for="id_settings-user_2"><input type="checkbox" name="settings-user" value="2" id="id_settings-user_2" style="display: none;">
Person B</label>
</li>
<li><label for="id_settings-user_3"><input type="checkbox" name="settings-user" value="3" id="id_settings-user_3" style="display: none;">
Person C</label>
</li>
</ul>
答案 0 :(得分:3)
您可以使用.parent()
/ .closest()
定位标签然后隐藏。
for (var i = 0; i < items.length; i+) {
if(!currentItem){
items[i].classList.remove('active');
}
}
$('input[type=checkbox]:not(:checked)').parent().hide();
$('input[type=checkbox]:not(:checked)').closest('label').hide();
$('input[type=checkbox]:not(:checked)').parent().hide();