我从数据库中获取表单,我想让用户只需点击它就可以选择答案。我正在研究Django所以我有这个模板代码:
<form id="game" action="" method="POST">{% csrf_token %}
<input type="hidden" name="question_id" value="{{ question.id }}">
<input type="hidden" name="answer">
<ul class="list1-g">
{% for answer in form.answers %}
<li class="list-g-a" data-answer="1">
<p class="answ">{{ answer }}</p>
</li>
{% endfor %}
</ul>
</form>
我尝试了这个选择答案并将答案值复制到隐藏字段中,但是使用这个jQuery代码我没有得到任何结果。
$(document).ready(function() {
$('#game li').click(function() {
$('input[name="answer"]').val($(this).data('answer'));
$('#game').submit();
});
});
请记住,当我致电{{answer}}时,它会返回四个答案(或者在某些情况下为2),我应该修复什么才能使其有效?
此表单根据forms.py:
运行class QuestionForm(forms.Form):
def __init__(self, question, *args, **kwargs):
super(QuestionForm, self).__init__(*args, **kwargs)
choice_list = [x for x in question.get_answers_list()]
self.fields["answers"] = forms.ChoiceField(choices=choice_list,
widget=forms.RadioSelect)
我在这里回答有关代码或目的的进一步问题。谢谢。
答案 0 :(得分:1)
我在codepen中运行你的javascript代码并构建并正确发布帖子。
它可能无法与django一起使用,因为您的data-anwser
attr始终等于1。
您需要执行以下操作:
{% for answer in form.answers %}
<li class="list-g-a" data-answer="{{answer.index}}">
<p class="answ">{{ answer }}</p>
</li>
{% endfor %}
答案 1 :(得分:0)
不确定django,但你应该可以这样做:
function myfunction(value) {
....
});
和js:
{{1}}