进度完成后,显示POST结果

时间:2014-03-08 20:51:55

标签: jquery ajax

我有一个进度条,当用户输入表格并提交按钮时,我会显示进度。

在值的基础上,查询运行用户输入次数并添加记录然后获取它们。

我添加了Ajax,以便在同一页面上显示结果,但是我希望在完成进度后打印内容。

我尝试过:

$(function(){
$("button").click(function(event){ 
    event.preventDefault();
    $.ajax({
        type:"POST",
        url:"result.php",
        data:$("#form").serialize(),
        success:function(data){
            var insert_records = $("#write_record").val();
            for(var i=0; i<insert_records; i++)
           $("progress").animate({ value: "+="+insert_records }, 5000);

          if($('progress').prop('value') == insert_records)
          {
                $("#content").html(data);

          } 
        }
    });
});

});

我对我的最后一段代码有疑问。我想以某种方式获取进度条的value属性的值,并将其与insert_records变量的最大值进行比较。

然后使用$(“#content”)。html(data);

显示内容

我的错误是什么?

1 个答案:

答案 0 :(得分:0)

由于动画的原因,进度条的值需要5000毫秒来更新,你需要在完成之后通过将其放入回调函数中来获取值:

$(function () {
    $("button").click(function () {
        event.preventDefault();
        $.ajax({
            type: "POST",
            url: "result.php",
            data: $("#form").serialize(),
            success: function (data) {
                var insert_records = $("#write_record").val();
                var newValue = $('progress').prop('value') + insert_records;
                $("progress").animate({
                    value: "+=" + insert_records
                }, 1000, function () { // Animation complete.

                    if ($('progress').prop('value') == newValue) {
                        $("#content").html(data);
                    }
                });

            }
        });
    });
});

注意:我不知道for循环可能没有必要。