我有以下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。
我知道这与im在其他表单上使用它一样有效,但是在这个特定的表单上,im上传图像/文件,所以我需要一种方法将enctype设置为multipart/ form -data。
发布于 2013-07-30 00:41:49
如果你想使用AJAX上传文件,你应该使用众所周知的"hack",这是一个简单的iframe,带有一个简单的表单,不是由AJAX提交的,并捕捉那个iframe的load事件,这样你就可以得到上传的结果。
对于你有疑问的部分,嗯,因为当"presubmit“(以某种方式命名)函数结束时,你阻止了默认事件,没有发生任何事情(你知道,提交后默认事件返回"true”),所以你需要在传递给提交函数的闭包之前告诉它需要提交,但你必须处理它是否被提交了两次。
https://stackoverflow.com/questions/17927541
复制相似问题