我有下面的表单,根据用户选择的下拉值,我想显示/隐藏一些字段。例如,如果用户从下拉列表中选择 EMI,则表单中的 EMI 字段将被隐藏。我怎样才能实现这个目标?
Choices = [('emi', 'EMI'),
('roi', 'Rate of Interest'),
('term', 'Term'),
('amount', 'Loan Amount')]
class loanform(forms.Form):
calculation = forms.CharField(label='What do you want to calculate?', widget=forms.Select(choices=Choices))
loanAmount = forms.IntegerField(label='Loan Amount')
roi = forms.FloatField(label='Rate of Interest')
term = forms.IntegerField(label='Term in months')
emi = forms.FloatField(label='EMI')
在渲染 Django
Form
之前,您可以按照自己的意愿在服务器上操作它。但是渲染之后,服务器就无法再对其进行操作了,因为它已经以 HTML 形式渲染并且现在掌握在客户端手中。
如果您希望
Choices
中的值影响 Form
的组成,则必须将此值作为获取您的 Form
的请求的一部分发送,并在此过程中确定您的 Form
的外观喜欢。
myForm = loanform()
if request.GET["choice"] == "emi": # [1]
del myForm.emi
[1] 此示例假设客户端将发送查询参数
"choice"
作为 GET 请求的一部分。