Jquery сохраняет значения элементов?

Добрый день! у меня есть категории при клике на каждую из которых я асинхронно получаю все, что в этой категории и динамически отображаю эти данные. У каждого динамически созданного элемента есть идентификатор. При нажатии допустим на первый элемент у меня появляется форма в модальном окне с данными, все отредактировал и сохранил - работает, закрыл форму и нажал на другой элемент и тоже отредактировал, но здесь уже есть проблема, поскольку теперь форма отправляется 2 раза. на url для первого элемента и последнего нажатого. Подскажите в чем причина такого поведения? Спасибо.

$(document).on('click', '.closest', function(e){
                $('#q').modal('show');
                var id = $(this).attr('id');
                $.ajax({
                    type: 'POST',
                    data: {'id':id},
                    url: "{{ url('/dashboard/getCategory') }}",
                    success: function(data){
                        $('.summernote').summernote('code', data['body']);

                        $("#bodyOFsummernote").submit(function(e){
                            e.preventDefault();
                            $.ajax({
                                type: 'POST',
                                data: {'body':$('.summernote').summernote('code')},
                                url: "{{ url('/dashboard/setCategory') }}/"+id,
                                success: function(data){
                                    alert('yes');
                                    $("#q").modal('hide');
                                },
                                error: function () {
                                    alert('no');
                                },
                                beforeSend: function (xhr) {
                                    var token = $('meta[name="csrf-token"]').attr('content');
                                    if (token) {
                                        return xhr.setRequestHeader('X-CSRF-TOKEN', token);
                                    }
                                }
                            });
                        });

                        },
                    error: function () {
                        alert('no');
                    },
                    beforeSend: function (xhr) {
                        var token = $('meta[name="csrf-token"]').attr('content');
                        if (token) {
                            return xhr.setRequestHeader('X-CSRF-TOKEN', token);
                        }
                    }
                });
            });
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
@Sayonji
$("#bodyOFsummernote").off('submit').submit(...

В джквери обработчики добавляются, надо старый удалять самому.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sergamers
@Sergamers
front-end
$.ajax({
                    type: 'POST',
                    data: {'id':id},
                    url: "{{ url('/dashboard/getCategory') }}",
                    success: function(data){ ...


Если ты вызываешь это несколько раз, то у тебя $("#bodyOFsummernote").submit(function(e){ ...

Создается несколько раз. От этого и косяк. (надо тестить)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 нояб. 2024, в 10:12
20000 руб./за проект
04 нояб. 2024, в 09:59
12000 руб./за проект
04 нояб. 2024, в 09:25
45000 руб./за проект