Jquery не может выбрать уникальные элементы с помощью классов

Я пытаюсь использовать ajax для некоторых автоматически генерируемых html-элементов из django. Я видел, что это делается путем выбора экземпляров через класс, но я не могу заставить это работать. Что я делаю не так?

javascript

$(document).ready(function() {
      $('.fix-button').on('submit', function(event) {
          event.preventDefault();

          var $issue_id = $(this);

          

          $.ajax({
              url: '{% url "fix_issue" %}',
              type: 'POST',
              datatype: 'json',
              data: {
                issueid: $issue_id.val(),
                csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
                action: 'post'
              },
              success: function (json) {
                document.getElementById("fixed_bool").innerHTML = json['result']
                console.log(json)
              },
              error: function (xhr, errmsg, err) {

              }
          });
        });
      });

html

<button class = "fix-button" value = "{{ issue.id }}">Fix</button>

views.py

def FixView(request):
    if request.POST.get('action') == 'post':
        result = ''
        id = int(request.POST.get('issueid'))
        issue = get_object_or_404(Issue, id=id)
        if issue.fixed == False:
            issue.fixed = True
            result = str(issue.fixed)
            issue.save()
        else:
            issue.fixed = False
            result = str(issue.fixed)
            issue.save()

        return JsonResponse({'result': result, })

Вы пытаетесь добавить слушателя событий в список, а не в отдельный элемент.

Попробуйте использовать метод .each() после захвата элемента.

https://api.jquery.com/each/

Бэкэнд действительно работал, но ярлык, переключающийся между true и false, был тем, что не обновлялся должным образом. Чтобы исправить это, я добавил уникальный идентификатор к метке, <span id = "{{ issue.id }}">{{ issue.fixed }}</span> и получил уникальный идентификатор с помощью

var issue_id = $(this).val()
document.getElementById(issue_id).innerHTML = json['result']
Вернуться на верх