发布jsp时显示动画gif

时间:2015-04-19 23:49:13

标签: java ajax jsp

我想显示一个动画gif,以显示在发布到服务器时加载jsp页面的状态。这是我的代码:

        <form id="form" name="form" action="symptom" method="post" enctype="multipart/form-data" onsubmit="return validateForm()">
            <input id="file" type="file" name="file" style="width: 470px; "/>
            <br><br>
            <input id="upload" type="submit" value="Upload" />                
        </form> 
        <br> <img src="img/loading.gif" id="loading" name="loading" style="display: none" height="42" width="42" > <br>
 <script>
        $.ajax({
        type: "POST",
        url: "symptom",
        data: {
            name: $("#form").val()
        },
        beforeSend:function(){
           $("#loading").show();
        },
        success:function(data){          
        },
        error:function(){
        }
    });
</script> 

当我点击提交按钮时,页面应该显示gif图像,但不会显示任何内容。

1 个答案:

答案 0 :(得分:0)

使用jQuery提交HTML表单很简单,但提交带有文件上传(multipart / form-data)的HTML表单并不简单。

在jQuery中,没有直接API提交multipart/form-data表单。

有不同的技术可以这样做:

对于支持HTML5的现代浏览器,您可以使用以下代码:

//Callback handler for form submit event
$("#form").submit(function(e)
{
    var formObj = $(this);
    var formURL = formObj.attr("action");
    var formData = new FormData(this);
    $.ajax({
        url: formURL,
        type: 'POST',
        data:  formData,
        mimeType:"multipart/form-data",
        contentType: false,
        cache: false,
        processData:false,
        beforeSend:function(){
            $("#loading").show();
        },
        success: function(data, textStatus, jqXHR)

        {
            $("#loading").hide();
        },
        error: function(jqXHR, textStatus, errorThrown) {}          
    });
    e.preventDefault(); //Prevent Default action. 
    e.unbind();
}); 
$("#form").submit(); //Submit the form

在支持旧版浏览器时,您可以通过提交隐藏的iframe来使用某种技术。

有关详细信息,请参阅此detailed tutorial