我有这个Js / Ajax代码:
<script type="text/javascript">
$(document).ready(function(){
$("#message").hide();
$("#addsliderimage").submit(function(e){
e.preventDefault();
dataString=$("#addsliderimage").serialize();
$.ajax({
type: "POST",
url: "addsliderimage_go.php",
cache: false,
data: dataString,
success: function(res){
//$("#message").show();
$("#message").html(res);
$('#message').fadeIn('slow');
if(res.indexOf("success")!=-1)
{
window.location.href = res.substr(8);
}
}
});
});
});
</script>
提交表单时,表单上的页面不会更改页面只是将数据提交到ajax代码中的URL。
我知道这可以作为我在其他表格上使用它然而在这个特定的表格我上传图像/文件所以我需要一种方法将enctype设置为multipart / form-data
答案 0 :(得分:0)
如果你想使用AJAX上传文件,你应该使用众所周知的“hack”,一个简单的iframe,一个简单的形式,不是由AJAX提交的,并且捕获那个iframe的load事件,这样你就可以得到上传的结果。
对于您有疑问的部分,好吧,因为当“预先提交”(以某种方式命名)函数结束时没有发生任何事情时阻止默认事件(你知道,提交后默认事件返回“true”) ,所以你需要在关闭之前告诉你要提交需要提交的函数,但你必须处理它是否被提交两次。