Java 使用ajax上传文件在上传后刷新
我正在尝试使用ajax上传文件。上载功能正常,但由于某些原因,文件上载后页面会刷新。可能有个小问题我找不到,请帮我指出。也许这个问题很傻,但错误还是会发生Java 使用ajax上传文件在上传后刷新,java,jquery,ajax,file-upload,Java,Jquery,Ajax,File Upload,我正在尝试使用ajax上传文件。上载功能正常,但由于某些原因,文件上载后页面会刷新。可能有个小问题我找不到,请帮我指出。也许这个问题很傻,但错误还是会发生 <form class="booking" id="addmovies" action="addmovies" method="post" enctype="multipart/form-data"> <table> <tr> <td>Movie Name</td&
<form class="booking" id="addmovies" action="addmovies" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>Movie Name</td>
<td><input type="text" name="mname" id="mname"/><span class="error1" id="merror"></span></td>
</tr>
<tr>
<td>Release Date</td>
<td><input type="text" name="date" id="datepicker"/><span class="error1" id="dateerror"></td>
</tr>
<tr>
<td>Choose poster</td>
<td><input type="file" name="file" id="poster"/><span class="error1" id="perror"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="ADD MOVIES" class="button_example"/></td>
</tr>
</table>
</form>
<script>
$("#addmovies").on("submit", function(e) {
e.preventDefault();
var mname = $("#mname").val();
var date = $("#datepicker").val();
var poster = $("#poster").val();
if (mname == "") {
$("#merror").html("please enter the movie name");
return false;
} else {
$("#merror").hide();
}
if (date == "") {
$("#dateerror").html("please enter the date ");
return false;
} else {
$("#dateerror").hide();
}
if (poster == "") {
$("#perror").html("please choose the poster ");
return false;
} else {
$("#perror").hide();
}
var formData = new FormData($(this)[0]);
$.ajax({
url: $(this).attr("action"),
type: 'POST',
data: formData,
async: false,
beforeSend: function() {
$("#message1").show().html("Uploading...");
},
success: function(data) {
$("#message1").html(data).fadeOut(5000);
$("#movielist").load("movies");
$("#mname").val("");
$("#datepicker").val("");
$("#poster").val("");
},
cache: false,
contentType: false,
processData: false
});
});
电影名称
发布日期
选择海报
$(“#添加电影”)。关于(“提交”,函数(e){
e、 预防默认值();
var mname=$(“#mname”).val();
var date=$(“#datepicker”).val();
var poster=$(“#poster”).val();
如果(mname==“”){
$(“#merror”).html(“请输入电影名称”);
返回false;
}否则{
$(“#merror”).hide();
}
如果(日期==“”){
$(“#dateerror”).html(“请输入日期”);
返回false;
}否则{
$(“#dateerror”).hide();
}
如果(海报==“”){
$(“#peror”).html(“请选择海报”);
返回false;
}否则{
$(“#peror”).hide();
}
var formData=新formData($(此)[0]);
$.ajax({
url:$(this.attr(“操作”),
键入:“POST”,
数据:formData,
async:false,
beforeSend:function(){
$(“#message1”).show().html(“上传…”);
},
成功:功能(数据){
$(“#message1”).html(数据).fadeOut(5000);
$(“#movielist”)。加载(“电影”);
$(“#mname”).val(“”);
$(“#日期选择器”).val(“”);
$(“#海报”).val(“”);
},
cache:false,
contentType:false,
processData:false
});
});
您需要
返回false
以防止页面刷新。或者您可以添加event.preventDefault()代码>在ajax调用之前
希望这有助于改变这种状况
$("#addmovies").on("submit", function(e) {
致:
或添加返回false代码>
$("#addmovies").on("submit", function(e) {
//....
$.ajax({
//....
});
return false;
});
我已经有了event.preventDefault();让我尝试返回falselive已被弃用,on是bind、live和delegate的替代,off是unbind、die和undelegate的替代
$("#addmovies").on("submit", function(e) {
//....
$.ajax({
//....
});
return false;
});