2017-02-22 31 views
0

У меня есть эта таблица элементов внутри моей формы, и мне нужно, каждый раз, когда я нажимаю этот флажок, чтобы отправить сообщение AJAX. Проблема в том, что пост AJAX отправляется ТОЛЬКО для первого элемента.Сообщение AJAX для каждого клика по checkboc

Я читал другие вопросы здесь, но я не могу обернуть голову вокруг решения, так как ни одна из них не проблема.

Также все это в моем приложении 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); 
     }, 

     }); 
    }); 

}); 

ответ

2

элемент Id должен больше появляться только один раз. назначить класс для ваших флажков и изменить селектор:

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^