jQuery Нажмите кнопку, используя jQuery, и добавьте данные к ответу после успешного выполнения ajax. - PullRequest
2 голосов
/ 14 июня 2019

У меня есть две кнопки, и одна из них уже связана с вызовом ajax с другого сайта.Мне нужно вызвать ajax с помощью первой кнопки, а также мне нужно добавить некоторые данные к результату после завершения ajax.

У меня нет доступа для редактирования функции ajax или существующего jQuery.Все, что я могу сделать, это создать новую функцию.Поэтому, пожалуйста, не просите меня редактировать ajax jQuery или функцию.

Просто мне нужно вызвать это с консоли.Есть ли какая-либо функция jQuery, чтобы узнать, вызван ли ajax и есть ли у него ответ об успешном завершении.

Я пытался использовать ajaxStart () и ajaxStop () .Но не работает.

Это то, что я пытался.

jQuery('.a').click(function(){
  var valuetopass;
  //Copy Value from input of A
  jQuery(document).ajaxStart(function(){
    console.log('Click Ajax Button');
    valuetopass = jQuery('.a_value').val();
  });

  //Call Ajax
  jQuery('.b').click();

  //Paste Value to the result appended
  jQuery(document).ajaxStop(function(){
    console.log('Appended the result input field(b_value) to the html.');
    
    //Paste the value in new field from ajax.
    jQuery('.b_value').val(valuetopass);
  });
});
<input class="a_value" value="ABC"/>
<button class="a">Button to initiate ajax</button>
<button class="b">Button having Ajax</button>

Здесь, когда мы нажимаем кнопку A, она инициирует нажатие кнопки B и вызывает ajax.После этого результат добавит поле ввода в HTML, например <input class="b_value"/>.Мне нужно добавить значение в это поле, используя внешнюю функцию jQuery.

Я также пытался

setTimeout(function(){
  jQuery('.b_value').val(valuetopass)
},500);

Но мы не можем сказать, что 500 мс будут точными затратами времени.Есть ли возможность найти вызванный и завершенный аякс.

1 Ответ

2 голосов
/ 14 июня 2019

Вы можете использовать .ajaxComplete (), используйте его вот так

$( document ).ajaxComplete(function(event, xhr, settings) {
  console.log(xhr.responseText);
});

Здесь xhr.responseText будет иметь ответ на каждый вызов ajax, сделанный методом jQuery ajax. Таким образом, ваш ответ <input class="b_value"/> может быть обработан внутри этого обратного вызова

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...