【发布时间】:2010-03-19 15:21:44
【问题描述】:
我在模型中有一个 CharField,需要由 ChoiceField 选择。如果用户的选择不在选择字段中,那么他们将选择“其他”并能够输入文本输入。我怎样才能做到这一点?我不需要javascript;只是对 django 部分的帮助。
【问题讨论】:
标签: django
我在模型中有一个 CharField,需要由 ChoiceField 选择。如果用户的选择不在选择字段中,那么他们将选择“其他”并能够输入文本输入。我怎样才能做到这一点?我不需要javascript;只是对 django 部分的帮助。
【问题讨论】:
标签: django
最好的方法是在您的模型/表单中只使用一个带有自定义小部件的 CharField,以显示您的选择和具有正确行为的“其他”。
【讨论】:
RZ有一个很好的解决方案
另一种解决方案(使用较少的 javascript)是隐藏一个“其他”字符字段,当您在 ChoiceField 上选择“其他”选项时,该字符字段可见
编辑:在style="display: none;" 中隐藏而不是HiddenInput 字段
类似(使用 jQuery):
$("#id_myChoiceField").change(function() {
if ($(this).val() == 'other') {
$("#id_myOtherInput").show();
}
else {
$("#id_myOtherInput").hide();
}
});
您必须编写自己的验证代码,并在“其他”字符域上设置 required=False
【讨论】:
该表单的类应如下所示:
class ChoicesForm(forms.ModelForm):
# some other fields here
...
other = forms.CharField(required=False)
...
如果用户在选项中选择“其他”,只需创建一个显示“其他”文本输入的 javascript。
【讨论】: