在处理脚本时使用jQuery显示动画加载消息

在处理脚本时使用jQuery显示动画加载消息,jquery,Jquery,我要做的是:将表单提交到一个脚本,该脚本将在后台运行,在输入字段中提供带有动画点的加载文本,并在同一字段中完成后返回消息 问题:我设法捕获输入变量并显示动画加载消息。我对此有些陌生,所以嵌套的代码可能很混乱,加载显示可能是一个可以嵌套的函数(如果我理解正确的话)。它在显示加载消息时停止,因此我假设表单从未真正提交,整个脚本只是在某个地方出现 我拥有的: <script> jQuery(document).ready(function($) { $("#subsenid

我要做的是:将表单提交到一个脚本,该脚本将在后台运行,在输入字段中提供带有动画点的加载文本,并在同一字段中完成后返回消息

问题:我设法捕获输入变量并显示动画加载消息。我对此有些陌生,所以嵌套的代码可能很混乱,加载显示可能是一个可以嵌套的函数(如果我理解正确的话)。它在显示加载消息时停止,因此我假设表单从未真正提交,整个脚本只是在某个地方出现

我拥有的

<script>
  jQuery(document).ready(function($)
  {
    $("#subsenid").submit(function(e)
    {
      e.preventDefault();
      var senid = $("input:text[name=submit_sen]").val();
      i = 0;
      setInterval(function() 
      {
        i = ++i % 4;
        $("#submit_senid").val("Importing"+Array(i+1).join("."));
      }, 500, function()
        {
          $.get("/inc/receiving_script.php", {psnid: senid}, function(data)
          {
            $("#submit_senid").val("All done");
          });
        }
      });
    });
  </script>

jQuery(文档).ready(函数($)
{
$(“#subsenid”)。提交(功能(e)
{
e、 预防默认值();
var senid=$(“输入:text[name=submit_sen]”)。val();
i=0;
setInterval(函数()
{
i=++i%4;
$(“#submit_senid”).val(“导入”+数组(i+1).join(“.”);
},500,函数()
{
$.get(“/inc/receiving_script.php”,{psnid:senid},函数(数据)
{
$(“提交”).val(“全部完成”);
});
}
});
});
长话短说:提交表单,显示动画加载消息和脚本返回消息(我只是添加了“全部完成”消息,而不是脚本中正确的返回消息,以查看是否发生了任何事情)

任何指向正确方向的指示和建议都将不胜感激


如果需要更多信息,我会尽快提供。

您使用的是类似的或类似的东西吗?您应该这样做。它是一个firefox插件,可以帮助您调试代码。(其他现代浏览器有类似的控制台和工具,通常您可以通过右键单击页面并选择“inspect element”或类似工具来访问它们)

如果打开firebug,您将能够看到对脚本的ajax调用及其结果。它还允许您在代码中设置执行断点(在提交处理程序的开头设置一个断点)并逐行浏览脚本。这样,您可以看到实际发生的情况,检查变量的内容等。DOM也可以轻松检查。对任何前端开发人员都有非常宝贵的帮助

其次,我在代码中看到了一些问题。您在匿名函数中执行ajax调用,并将其作为第三个参数提供给setInterval,这将不起作用。您需要启动动画,执行ajax调用,并在ajax回调中停止动画,并将检索到的数据设置在需要的位置

未经测试,但类似的内容应该会让您走上正确的道路:

jQuery(document).ready(function($){

    $("#subsenid").submit(function(e){
        e.preventDefault();
        var senid = $("input:text[name=submit_sen]").val();
        var i = 0;

        var animationInt = setInterval(animateBox, 500);
        function animateBox(){
            i = ++i % 4;
            $("#submit_senid").val("Importing"+Array(i+1).join("."));
        }

        $.get("/inc/receiving_script.php", {psnid: senid}, function(data){
            clearInterval(animationInt);
            $("#submit_senid").val("All done");
        });
    }
  });
});

非常感谢。我使用Firebug,但我显然错过了它的一些其他用途,所以感谢您的详细说明。