单击jQuery中的<li>提交表单

时间:2016-05-18 14:44:26

标签: javascript jquery django forms

我从数据库中获取表单,我想让用户只需点击它就可以选择答案。我正在研究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)

我在这里回答有关代码或目的的进一步问题。谢谢。

2 个答案:

答案 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}}