Javascript Can';用jQuery(Django)序列化表单

Javascript Can';用jQuery(Django)序列化表单,javascript,jquery,django,Javascript,Jquery,Django,我有一个模板 <form method="POST" action="{% url 'ajax_question' %}" role="form" id="question-form"> {% csrf_token %} {% for answer in answers %} <div class="radio"><label name="answers-radio"> <input type="radio

我有一个模板

  <form method="POST" action="{% url 'ajax_question' %}" role="form" id="question-form">
    {% csrf_token %}
    {% for answer in answers %}
      <div class="radio"><label name="answers-radio">
        <input type="radio" name="answers-radio"
               value ="{{ answer.id }}">{{ answer.text }}
      </label></div>
    {% endfor %}
  </form>
如果工作不正常,它只会返回

csrfmiddlewaretoken=yYa3KW1pFWCAquX3FUsbMOHTfXE2z8g3

表单呈现正确,我看到所有无线电元素和其他元素。

也许您可以使用

$("#question-form").serializeArray();
这里有一个解决方案,你可以使用或寻找想法。希望这有帮助

也许你可以

$("#question-form").serializeArray();
这里有一个解决方案,你可以使用或寻找想法。希望这有帮助


如果在页面加载时序列化表单,则只序列化初始数据(这就是为什么只获取
csrf\u标记值的原因)。相反,您希望序列化所有字段,在用户填写字段并触发
submit
之前,这些字段不会有值

您必须稍微调整表单,使其不立即发布(如果您计划使用ajax,可以删除操作Url,并将该Url放入ajax方法中)。但这样的事情应该适合你:

$(document).ready(function() {
    $('#question-form').on('submit', function(event){
        event.preventDefault();
        var form_data = $('#question-form').serialize();
    });
})

如果在页面加载时序列化表单,则只序列化初始数据(这就是为什么只获取
csrf\u标记
值)。相反,您希望序列化所有字段,在用户填写字段并触发
submit
之前,这些字段不会有值

您必须稍微调整表单,使其不立即发布(如果您计划使用ajax,可以删除操作Url,并将该Url放入ajax方法中)。但这样的事情应该适合你:

$(document).ready(function() {
    $('#question-form').on('submit', function(event){
        event.preventDefault();
        var form_data = $('#question-form').serialize();
    });
})

愚蠢的错误:我没有选择任何单选元素,所以什么都不会发生。

愚蠢的错误:我没有选择任何单选元素,所以什么都不会发生。

您什么时候序列化表单数据?在同一页的
中,对,但是您是否在等待表单提交以序列化表单?还是在页面加载时序列化?加载后。即使在浏览器控制台中序列化它,它也只显示CSRFMiddleWareToken。您何时序列化表单数据?在同一页的
中,对吗?但您是否正在等待表单提交以序列化表单?还是在页面加载时序列化?加载后。即使在浏览器控制台中序列化它,它也只显示csrfmiddlewaretoken