延迟阿贾克斯提交



我有一个加载消息和一个成功消息,我想在提交表单之前淡入和淡出。我真的无法让代码正确显示这些消息几秒钟,然后像往常一样使用 Ajax 提交表单。我尝试像这样连接提交按钮。

jQuery(document).ready(function (e) {
    jQuery( "#submitbutton" ).click(function() {
           e.preventDefault();
           jQuery('#loadingMessage').fadeIn(1000);
           jQuery('#loadingMessage').hide().delay(1000);
           jQuery('#saveMessage').show().delay(2000).fadeOut(1000);
       setTimeout( function () { 
            jQuery("form[id=postorder]").submit();
        }, 4000);
    });
});

或者这个,这只是一个例子,我已经尝试了几个。

jQuery(document).ready(function (e) {
    jQuery("form[id=postorder]").submit({
           e.preventDefault();
           jQuery('#loadingMessage').fadeIn(1000);
           jQuery('#loadingMessage').hide().delay(1000);
           jQuery('#saveMessage').show().delay(2000).fadeOut(1000);
       setTimeout( function () { 
            [Submit form here]
        }, 4000);
    });
});

消息工作正常。感谢任何帮助!

你可以做这样的事情

jQuery(document).ready(function (e) {
    jQuery( "#submitbutton" ).click(function() {
           jQuery('#loadingMessage').fadeIn(2000, function(){
            jQuery('#loadingMessage').hide(2000, function(){
              jQuery('#saveMessage').show(2000).fadeOut(2000, function(){
                jQuery("form[id=postorder]").submit();
              });
            });
           });
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="loadingMessage" style="display:none;">Loading Message</p>
<p id="saveMessage"  style="display:none;">Save Message</p>
<form id="postorder" action="" method="post">
  <input type="button" id="submitbutton" value="submit">
</form>

jQuery non blocking,因为它是一个Javascript图书馆。

Non blocking意味着它不会等待前一行完成它的工作。它将移动到下一行,而上一行代码仍在工作。

因此,在这种情况下,您需要使用 callback 函数按顺序执行某些操作。

希望这对:)有所帮助

最新更新