簡體   English   中英

在jquery ajax中使用e.preventDefault()時圖像未發布

[英]Image isn't posting while using e.preventDefault() in jquery ajax

使用jquery ajax發布表單時遇到有線問題。 我有多個圖像上傳字段。 當我使用e.preventDefault()函數時,圖像未上傳。 但是當我禁用此代碼。 它仍然很好。 這是我的標記,js和php的代碼段

HTML

<form class="shoform" id="contact-entry" name="contact-entry" action="project-up-eng.php" method="post" enctype="multipart/form-data">
<input class="pic" id="img" type="file" multiple="multiple" name="imgfile[]" />
<input class="submitbtn" id="submitbtn" type="submit" value="Add"></input>
</form>

JS

$("#submitbtn").click(function(){


        $("#contact-entry").submit(function() {
        /* Act on the event */

        e.preventDefault();
        $.post('project-up-eng.php',$(this).serialize(), function()
                        {
                        alert("OK");


                    });

    }); 

});

PHP:

mkdir("projects/".$_POST['name']);
$path="projects/".$_POST['name'];
for($i=0;$i<count($_FILES['imgfile']['size']);$i++)
{
$file = $path."/".$_FILES['imgfile']['name'][$i];
move_uploaded_file($_FILES['imgfile']['tmp_name'][$i],$file);   

}

不幸的是,您無法使用經典HTML通過AJAX提交包含文件的表單。 當您調用e.preventDefault() ,不會執行常規文件上傳,並且您手動調用的$.post無法執行您想要的操作。

您可以在具有新HTML 5功能的新瀏覽器中使用JavaScript上傳。 請參閱“ 如何使用AJAX上傳文件 ”。

您沒有提及要在哪個元素上禁用默認事件功能。

當前,有兩個元素#submitbtn和“#contact-entry”

如果您想防止#submitbtn

$("#submitbtn").click(function(e){  // just check e in the bracket

        e.preventDefault();
        $("#contact-entry").submit(function() {
        /* Act on the event */

//        e.preventDefault(); this line removed
        $.post('project-up-eng.php',$(this).serialize(), function()
                        {
                        alert("OK");


                    });

    }); 

});

如果要防止#contact-entry

$("#submitbtn").click(function(){

        $("#contact-entry").submit(function(e) { // just check e in the bracket
        /* Act on the event */

       e.preventDefault(); 
        $.post('project-up-eng.php',$(this).serialize(), function()
                        {
                        alert("OK");


                    });

    }); 

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM