2013-08-07 64 views
0

我試圖提交使用JQuery一個Ajax的形式,只是不能當場問題:jQuery的形式提交沒有,或者沒有證據表明它提交

<script type="text/javascript"> 
       $(document).ready(function() 
       { 

        $('#photoimg').live('change', function() 
        { 
         $("#emailpreviewloader").html(''); 
         $("#emailpreviewloader").html('<img width="180" src="/loader.gif" alt="Uploading...."/>'); 

         $('#myImageForm').ajaxForm(function() { 
          alert("Thank you for your comment!"); 
         }); 

         alert("about to submit"); 
         $('form#myImageForm').submit(); 
         alert("submitted"); 
        }); 
       }); 
      </script> 

兩個警報火了:「關於提交」和「已提交」,但感謝您的評論永遠不會觸發。

任何想法是什麼錯?

編輯:

形式代碼:

<form id="myImageForm" method="post" enctype="multipart/form-data" action="/ajaximage.php"> 
          <input type="file" name="photoimg" id="photoimg" /> 
         </form> 
+1

不使用其已棄用的版本 –

+0

頁面加載時的html結構是什麼?我會說你不應該在你的情況下使用'.live()',但是我需要關於你的頁面結構的更多信息。 – LeGEC

+0

你的表單在哪裏? –

回答

2
$(document).ready(function() 
       { 
        $('#myImageForm').ajaxForm({ 
         beforeSend : function(){alert('about to submit')}, 
         complete:function(){alert('submited and result recieved')} 
        }); 
        $('#photoimg').change(function() 
        { 
         $("#emailpreviewloader").html(''); 
         $("#emailpreviewloader").html('<img width="180" src="/loader.gif" alt="Uploading...."/>'); 

         $('form#myImageForm').submit(); 
         alert("submitted"); 
        }); 
       }); 

試試這個代碼,看看你得到一個關於提交或submited並導致收到警報

如果你是沒有得到即將提交警報,那麼可能是你調用的元素.ajaxForm不正確。 如果你得到兩個警報,那麼最可能的情況是服務器返回一個錯誤

+0

提交,警報火災...即將提交不會,提交和結果收到不會引發.... –

+0

請確保你確實有一個ID爲myImageForm的表格 –

+0

額外的評論:'.live()'在這裏沒有用處。我在你的答案中編輯了代碼。 – LeGEC

0

我想你最好通過選項指定你需要在ajaxForm中的回調。

例如請注意,submit()將是一個異步函數,所以alert(「submitted」);無論提交是成功還是失敗,都會被調用。

0

嘗試沒有的jQuery插件的形式,看看發生了什麼:

$(document).ready(function() 
       { 
/* 
        $('#myImageForm').ajaxForm({ 
         beforeSend : function(){alert('about to submit')}, 
         complete:function(){alert('submited and result recieved')} 
        }); 
*/ 

        $('#photoimg').change(function() 
        { 
         $("#emailpreviewloader").html(''); 
         $("#emailpreviewloader").html('<img width="180" src="/loader.gif" alt="Uploading...."/>'); 

         $.post("ajaximage.php",{ photoimg:$(this).val()} ,function(data) 
         { 
          alert(data); 
         }) 
         .fail(function(xhr, textStatus, errorThrown) { 
          alert(xhr.responseText);}); 
        }); 
        }); 
在你的PHP文件

則:

$photoimg=$_POST['photoimg']; 
if($photoimg){ 
    echo "ok"; 
} 

你必須有一個警告說 「OK」。 你能不能也發佈ajaximage.php並告訴我們你正在使用的jQuery版本?