我有一个带有ChoiceField和CharField的表单。现在我想在选择ChoiceField的特定选项时启用CharField(例如选择3)。否则应禁用CharField。
My ChoiceField
choices = (('1', 'some text',),
('2', 'some text',),
('3', 'some text',))
host = forms.ChoiceField(choices = choices)
一个简单的CharField
hostAdress = forms.CharField()
你有什么想法可以这样做吗?
答案 0 :(得分:0)
您可以从禁用/隐藏的char字段开始,并使用javascript来捕获选择框上的更改事件并更改该事件的字段。例如:
$("#id_choice").change(function(eObj) {
$("#id_char").removeAttr("disabled");
这只是一个示例(使用jQuery),如果未选中选择框(不确定是否允许此行为),则需要确保再次禁用字段,并且还需要正确处理表单错误的显示如果你隐藏字段而不启用/禁用它。
答案 1 :(得分:0)
我会使用jQuery。
$('your-select-input-selector').change(function() {
var bDisable = true;
if ($(this).val() == '3'):
bDisable = !bDisabled;
$('your-text-input-selector').prop('disabled', bDisable);
});
您还需要处理首次加载页面时已在值3
上设置选择输入的情况。