2013-08-07 42 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版本?