Ajax-запрос отправляет ввод несколько раз - PullRequest
0 голосов
/ 04 июля 2018

У меня есть строки таблицы, которая создает боковую панель с полями ввода через запрос ajax get при нажатии на строку. Боковая панель, в свою очередь, будет иметь еще один пост-запрос ajax, который отправляет поля ввода на боковой панели.

Проблема, с которой я столкнулся, заключается в том, что если пользователь нажимает на разных строках таблицы, а затем отправляет поля ввода, он запускает вызовы ajax для всех нажатых строк таблицы, но должен отправлять только строку. что он в данный момент "стоит" на.

Ajax-вызов для создания боковой панели с полями ввода:

var ajaxRequest = null;

$('.detailedTable tbody').on('click', '.tablerow', function() {
  var somedata = $(this).attr('data-somedata');

  ajaxRequest = $.ajax({
    url:"/ajax/showAccountSidebar",
    method:"GET",
    data: {
      somedata: somedata,
    },
    beforeSend:function() {
        if(ajaxRequest != null) {
            ajaxRequest.abort();
        }
     },
    success:function(data) {
      $('#sidemenu').html(data);
    }
  });
});

Ajax-вызов для отправки полей ввода на боковой панели:

var sidebarRequest = null;

$(document).on('click', '#sidebarMenu', function() {
  var someData = $("#someData").val();

  sidebarRequest = $.ajax({
    url:"/ajax/saveAccountNote",
    method:"POST",
    data: {
      inputData: someData
    },
    beforeSend:function() {
        if(sidebarRequest != null) {
            sidebarRequest.abort();
        }
    }
  });
});

1 Ответ

0 голосов
/ 04 июля 2018

У меня была проблема с вызовом второго AJAX-вызова с

$(document).on('click', '#sidebarMenu', function() {

Изменил его на следующее, и теперь оно отправляется только для полей ввода, которые я щелкнул последними:

$('#sidebarMenu').on('click', $(this), function() {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...