Javascript JQuery AJAX请求语法问题(混合了JS函数)

Javascript JQuery AJAX请求语法问题(混合了JS函数),javascript,jquery,Javascript,Jquery,对于非常了解JQuery的人(不是我),这可能是一个简单的解释,但当我像这样运行代码时,它工作得很好: $('input#addStatButton').click( function() { $.ajax({ type: 'POST', url: '{{action("StatController@store")}}', data: $('form#new_stat').serialize(), }) .done(function(r

对于非常了解JQuery的人(不是我),这可能是一个简单的解释,但当我像这样运行代码时,它工作得很好:

$('input#addStatButton').click( function() {
    $.ajax({
      type: 'POST',
      url: '{{action("StatController@store")}}',
      data: $('form#new_stat').serialize(),
    })
    .done(function(refresh) {
      clearStat();
      $.get('{{action("StatController@show", [$game->id])}}', function(data) {
        var newData = $("#statList" , data)
        $( "#statList" ).html( newData );
        //console.log(newData);
      });
    });
  });
请注意“clearStat()”函数的位置。这只是清除表单以防止用户提交两次表单。我希望它尽早运行,这样我就可以确保submit按钮很快消失

然而,当我像这样运行它时,由于这个确切的原因将它向上移动,在'clearStat()'下面没有任何东西是有效的

$('input#addStatButton').click( function() {
    clearStat();
    $.ajax({
      type: 'POST',
      url: '{{action("StatController@store")}}',
      data: $('form#new_stat').serialize(),
    })
    .done(function(refresh) {
      $.get('{{action("StatController@show", [$game->id])}}', function(data) {
        var newData = $("#statList" , data)
        $( "#statList" ).html( newData );
        //console.log(newData);
      });
    });
  });
如果有区别,下面是clearStat()函数本身:

function clearStat() {
  addPlayerToStat(null, null);
  addStatToStat(null);
  document.getElementById("addStatButton").style.display = 'none';
  document.getElementById("playerSelected").style.display = 'none';
  document.getElementById("statSelected").style.display = 'none';
}

这让我很困惑,因为我对JQuery不太了解,但我确信这只是一件愚蠢的事情。但是,在回答这个问题时,您能否提供一种在AJAX请求之前运行“clearStat()”的方法

假设
clearStat
正在
表单#new_stat
表单中的元素上运行,您需要在清除表单之前调用
序列化
,例如(请参见
***
注释行):


非常感谢。正是因为我缺乏知识,所以必须先序列化的原因是什么?@Hunter-读取表单中的值。大概
addPlayerToStat
和/或
addstatostat
正在清除表单value.Hmm。这正是它所做的,哈哈。真不敢相信我错过了。谢谢
$('input#addStatButton').click( function() {
  var formdata = $('form#new_stat').serialize(); // ***
  clearStat();                                   // ***
  $.ajax({
    type: 'POST',
    url: '{{action("StatController@store")}}',
    data: formdata,                              // ***
  })
  .done(function(refresh) {
    $.get('{{action("StatController@show", [$game->id])}}', function(data) {
      var newData = $("#statList" , data)
      $( "#statList" ).html( newData );
      //console.log(newData);
    });
  });
});