jQuery Ajax-ajax回调函数中的Use事件

时间:2018-07-12 12:50:45

标签: javascript jquery ajax

任何提示,我如何使它起作用?

$( "#search_form" ).on('submit',function(event) {


ajax(function(response){
    if (response.status == 'error'){
      event.preventDefault();
      alert(response.status,response.msg);
    }else if(response.status == 'ok'){
      alert(response.status,response.msg);
    }
  });
});

event.preventDefault();没有被调用,可能是因为它超出了ajax函数的范围。 该行仅阻止按钮执行后期操作。 我如何将其插入到ajax函数中?我只是在学习回调,这让我很惊讶

谢谢你们

1 个答案:

答案 0 :(得分:1)

已更新,询问Ajax调用返回后的操作方法,这是我最初不理解的要求。

使用已发布的代码,并且由于Ajax调用是异步的, submit 函数将在Ajax调用返回之前退出,然后,当Ajax调用返回时,事件不再可用。


要在Ajax调用成功后能够真正重新提交 form ,请执行以下操作,例如在提交第二次提交之前取消绑定处理程序,例如

注意,自ver。 3,unbind()已过时,因此我使用了.off()

$("#search_form").on('submit', function(event) {

  console.log("here we enter only once")

  event.preventDefault();

  console.log("simulate async with setTimeout, and after\nits delay (3 sec.) my answer will show up")

  // simulate ajax async call
  setTimeout(function() {
      console.log("success ... now we submit the form properly");
      // unbind and resubmit
      $( "#search_form" ).off('submit').submit()  
  }, 3000);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form action="https://stackoverflow.com/a/51306380/2827823" method="post" id="search_form">
  <input type="text" value="some dummy value">
  <input type="submit">
</form>