每次点击一次checkboc时的AJAX帖子

时间:2017-02-22 14:34:16

标签: jquery ajax post each

我在表单中有这个项目表,我需要,每次单击复选框发送AJAX帖子。 问题是AJAX帖子只发送给第一个项目。

我已经在这里阅读了其他问题,但我无法解决问题,因为它们都没有解决问题。

所有这些都在我的django / python应用程序中,如果这可以提供任何帮助。

谢谢!

我的表格/表格:

<form method="post" action="{% url 'myapp:ajax-function' %}">
  <table>
    <tr>
      <td>
        Number: <input type="text" name="number" />
      </td>
      <td>
        Title: <input type="text" name="title" />
      </td>
      <td>
        Insert:<input id="check" type="checkbox" data-id={{ doc.id }} name="checkebox"/>
      </td>
   </tr>
  </table>
</form>

我的AJAX:

$("#check").each(function(){
  $(this).on("click", function(){
      var checked = $('#check').val();
      var message_id = $('#check').attr('data-id');


      $.ajax({
               url : "{% url 'myapp:ajax-function' %}", 
               //async: false,
               type : "POST",
               data:{
               'csrftoken':getCookie('csrftoken'),
               checked:checked,
               message_id:message_id},

         success : function(result) {
             console.log(result); // sanity check

         },


         error : function(xhr,errmsg,err) {
         console.log(xhr.status + ": " + xhr.responseText);
         },

      });
  });

});

1 个答案:

答案 0 :(得分:2)

元素ID必须只出现一次。为您的复选框分配一个类并更改选择器:

&#13;
&#13;
 Insert:<input class="check" type="checkbox" data-id={{ doc.id }} name="checkebox"/>
&#13;
&#13;
&#13;

  $(".check").each(function(){
//........