Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从django表单库中隐藏复选框并使用Javascript切换其显示属性_Javascript_Django_Django Models_Django Forms_Dom Events - Fatal编程技术网

如何从django表单库中隐藏复选框并使用Javascript切换其显示属性

如何从django表单库中隐藏复选框并使用Javascript切换其显示属性,javascript,django,django-models,django-forms,dom-events,Javascript,Django,Django Models,Django Forms,Dom Events,我一直在用html制作一个表单,其中有一个复选框,如果选中,它将使用Javascript显示另一个复选框。我现在已经将该表单更改为使用django的表单库,但我不知道如何访问django输入字段的display属性。我尝试了HideInput小部件,但所有这些都没有隐藏标签,只是隐藏了框本身 任何关于如何设置django表单对象的显示属性和/或如何使用Javascript切换这些属性的帮助都将非常好,以及/或如何在django表单上编写事件属性的帮助都将非常好 models.py: class

我一直在用html制作一个表单,其中有一个复选框,如果选中,它将使用Javascript显示另一个复选框。我现在已经将该表单更改为使用django的表单库,但我不知道如何访问django输入字段的display属性。我尝试了HideInput小部件,但所有这些都没有隐藏标签,只是隐藏了框本身

任何关于如何设置django表单对象的显示属性和/或如何使用Javascript切换这些属性的帮助都将非常好,以及/或如何在django表单上编写事件属性的帮助都将非常好

models.py:

class ContactForm(forms.Form):
Contact = forms.BooleanField(required=False, widget=CheckboxInput())
More = forms.BooleanField(required=False, widget=CheckboxInput())
html页面:

 <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
 <script type="text/javascript"> 




$(function(){
$('#id_Contact').click(function(){
 if($('#id_Contact').is(':checked')){
    $('#id_More').show();
 }
  });
});

    function ifChecked(id, id2){
        var ele = document.getElementById(id);
        var ele2 = document.getElementById(id2);

        if(ele.checked){
            ele2.style.display = "block";
        }
        else{
            ele2.style.display = "none";
        }
    }
</script>

<form action="/contact/" method="post">
{% for field in form %}
    <div class="fieldWrapper">
        {{ field.errors }}
        {{ field.label_tag }}: {{ field }}
    </div>
{% endfor %}
<p><input type="submit" value="Send message" /></p>
</form>

$(函数(){
$('id_Contact')。单击(函数(){
如果($(“#id_Contact”)。是(“:选中”){
$('id#u More').show();
}
});
});
函数ifChecked(id,id2){
var ele=document.getElementById(id);
var ele2=document.getElementById(id2);
如果(勾选元素){
ele2.style.display=“块”;
}
否则{
ele2.style.display=“无”;
}
}
{%形式的字段为%}
{{field.errors}}
{{field.label_tag}}:{{{field}
{%endfor%}

您可以这样做

from django.forms import CheckboxInput, HiddenInput

class ContactForm(forms.Form):
  Contact = forms.BooleanField(required=False, widget=CheckboxInput())
  More = forms.BooleanField(required=False, widget=HiddenInput())
您可以使用jQuery

$(function(){
  $('#id_Contact').click(function(){
     if($('#id_Contact').is(':checked')){$('#id_More').show();}
  });
});
你可以试试

{{form.field_name_to_hide.as_hidden}


在隐藏复选框而不是名称“More”的模板中,是否有一种方法可以使其成为一个标签,然后也将其隐藏?查找标签。它将作为for=“id\u content”生成,只需使用jquery将其隐藏即可。但如何才能让它开始隐藏?此外,标签本身没有单独的ID,它只引用复选框ID。我如何调用标签@对不起,我应该意识到。。widget=forms.HiddenInput()而不是样式attributeMore=forms.BooleanField(required=False,widget=forms.HiddenInput()),这也仅隐藏框本身:/