我想显示一个动画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图像,但不会显示任何内容。
答案 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