0

我有一个带有 ChoiceField 和 CharField 的表单。现在我想在我选择 ChoiceField 的特定选项(例如选项 3)时启用 CharField。否则应该禁用 CharField。

我的选择领域

choices = (('1', 'some text',),
           ('2', 'some text',),
           ('3', 'some text',))

host = forms.ChoiceField(choices = choices)

和一个简单的 CharField

hostAdress = forms.CharField()

你有什么想法来实现它吗?

4

2 回答 2

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首次加载页面时已在值上设置选择输入的情况。

于 2013-08-21T11:31:27.920 回答
0

您可以从禁用/隐藏的字符字段开始,并使用 javascript 在选择框上捕获更改事件并更改该事件的字符字段。例如:

$("#id_choice").change(function(eObj) {
    $("#id_char").removeAttr("disabled");

这只是一个示例(使用 jQuery),如果未选择选择框(不确定是否允许此行为),您需要确保再次禁用字符字段,并且如果您隐藏,您还需要正确处理表单错误的显示字段,而不是启用/禁用它。

于 2013-08-21T11:30:59.900 回答