jQuery单击使用jQuery的按钮,并在ajax成功后将数据附加到响应

时间:2019-06-14 10:11:19

标签: javascript jquery html ajax

我有两个按钮,其中一个已经与来自其他站点的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将调用。 之后,结果将以<input class="b_value"/>之类的HTML形式附加输入字段。我需要使用外部jQuery函数向该字段添加值。

我也尝试过

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

但是我们不能说确切的时间是500毫秒。是否有可能找到已调用并完成的ajax。

1 个答案:

答案 0 :(得分:2)

您可以使用.ajaxComplete(),像这样使用它

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

这里,xhr.responseText将包含由jQuery ajax方法进行的每个ajax调用的响应。 因此,您的回复<input class="b_value"/>可以在此回调中处理