如何在Django中选择其他选择框时显示其他选择框
我是Django的新手。 现在我定义了下面的类如何在Django中选择其他选择框时显示其他选择框,django,Django,我是Django的新手。 现在我定义了下面的类 PROPERTY_TYPE_CHOICE = [['1', 'Fixed (TODO)'], ['2', 'Trajectory (TODO)'], ['3', 'Error_Detecting'], ['4', 'Error_Correcting']] FIXED_TYPE_CHOICE = [['1', 'Prefix',
PROPERTY_TYPE_CHOICE = [['1', 'Fixed (TODO)'],
['2', 'Trajectory (TODO)'],
['3', 'Error_Detecting'],
['4', 'Error_Correcting']]
FIXED_TYPE_CHOICE = [['1', 'Prefix',
'2', 'Suffix']]
class UploadFileForm(forms.Form):
# title = forms.CharField(max_length=50)
automata_file = forms.FileField(required = True)
transducer_file = forms.FileField(required = True)
property_type = forms.ChoiceField(choices=PROPERTY_TYPE_CHOICE,
required=True)
fixed_type = forms.ChoiceField(choices=FIXED_TYPE_CHOICE,
required=True)
debug_output = forms.BooleanField(required=False)
我在前面的html中显示了这个属性类型选择
<div class="fieldWrapper">
{{ form.property_type.errors }}
<label for="id_a">Select <u>a type</u> of property:</label>
{{ form.property_type }}
</div>
{{form.property_type.errors}}
选择一种属性类型:
{{form.property_type}
如果我在属性类型选项中选择第一个选项“FIXED(TODO)”,我想显示FIXED类型选项。
我阅读了关于Django的文档,我认为它可以这样实现:
<div class="fieldWrapper">
{{ form.property_type.errors }}
<label for="id_a">Select <u>a type</u> of property:</label>
{{ form.property_type }}
</div>
{% if form.property_type=='1' %}
<div class="fieldWrapper">
{{ form.fixed_type.errors }}
<label for="id_a">Select <u>a fixed type</u> of property:</label>
{ { form.fixed_type }}
</div>
{% endif %}
{{form.property_type.errors}}
选择一种属性类型:
{{form.property_type}
{%if form.property_type=='1%}
{{form.fixed_type.errors}}
选择固定类型的属性:
{{form.fixed_type}
{%endif%}
但我不能那样做。
我该怎么办?谢谢。form.property\u type是一个BoundForm对象,如果要访问其值,需要使用
form.property\u type.value
这就是为什么对{%if form.property_type=='1'}
的比较不起作用的原因
有关更多详细信息,请参见“自定义表单模板”部分下的2/3
要在不刷新页面的情况下进行更新,需要如下Javascript(确保还包括jQuery库(http://jquery.com/):
并确保为下拉列表提供相应的id属性(
id=“property\u type”
),例如。您是否试图让它在选择“Fixed”后立即显示第二个框从下拉列表中,或者在页面刷新后?如果您希望它在不刷新页面的情况下显示,您需要使用Javascript。我正在尝试在不刷新页面的情况下尽快显示第二个框。您知道Javascript的代码吗?用一些Javascript更新了我的答案,这应该给您一个开始“接受”的位置我的答案是否对你有效?你可以通过按下旁边的复选标记来接受。
$("#property_type").change (function() {
if($(this).val() == '1') {
$("#fixed_type").show();
} else {
$("#fixed_type").hide();
}
} )