2

我有这个 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 的方法

4

1 回答 1

0

如果您想使用 AJAX 上传文件,您可能应该使用众所周知的“hack”,这是一个简单的 iframe,它有一个不是由 AJAX 提交的简单表单,并捕获该 iframe 的加载事件,这样您就可以获得结果上传。

对于您有疑问的部分,因为您在“预提交”(以某种方式命名)函数结束时阻止默认事件没有任何反应(您知道,默认事件在提交后返回“true”),所以您需要在您传递给提交函数的闭包之前告诉它需要提交,但您必须处理它是否被提交两次。

于 2013-07-29T16:41:48.710 回答