【发布时间】:2016-05-01 17:28:40
【问题描述】:
我制作了一个带有一些选择的 Django 表单,这些选择相互依赖(用户在第一次选择(等级)中选择选项,并在第二次选择(主题)中根据其值获取一些值):
class AddTaskForm(forms.ModelForm):
grade = forms.ModelChoiceField(queryset=Grade.objects.all())
subject = forms.ModelChoiceField(queryset=Subject.objects.none())
topic = forms.CharField(widget=forms.Textarea)
...
我正在通过 ajax-request 获取主题值,并使用这样的主题动态更改选择(抱歉,我是 JS 新手,不知道如何正确操作):
$.each(data, function(key, value){
$('select[name=subject]').append('<option value="' +
key + '">' + value +'</option>');
});
但是当我点击“提交”按钮时,我收到这条消息,属于选择,我动态改变了:
Select a valid choice. That choice is not one of the available choices.
我检查了 html 代码,它完全一样,应该是标准格式。 我做错了什么以及如何以第二种形式动态获取值?
【问题讨论】:
-
所以您正在加载选项,但是否选择了任何选项?您的 js 所做的只是呈现选项列表,而不是实际选择其中一个选项。
-
@CurtisOlson 是的,当然,即使我在页面上选择了一些选项,也会出现消息,我只附加了部分代码,附加了新选项,因为其余代码在问题中并不重要(如我认为)
-
好的,
key在您的 js 中返回的内容是什么 - 我假设每个键都是您返回的Subject实例的 pk? -
@CurtisOlson 是的,你是对的