【问题标题】:ajaxForm not callingBackajaxForm 没有回调
【发布时间】:2012-10-10 07:56:39
【问题描述】:

我知道你们中的很多人已经在数百篇帖子中讨论过这个问题,但我没有看到有人遇到像我这样的问题。

我正在尝试实现 AjaxForm 来上传文件。我阅读了所有的教程、文档、示例......一切。

HTML:

<form action="scripts/upload_script.php" method='post' id="upload_picture_form" enctype="multipart/form-data">
    File: <input type="file" name="upload" id="upload" /></p>
    <p><input type="submit" name='submit' value="Submit" /></p>
</form>

jquery:

$('#upload_picture_form').ajaxForm({
  success: function(){
    alert('success');
  },
  error: function(){
    alert('error');
  },
  resetForm:true
}); 

当我提交表单时,调用了 ajaxForm,在 fireBug 上我可以看到调用了 php 文件,我还可以看到在几个“毫秒”后响应是“200 OK”,我可以看到响应php发送的HTML。

问题是在响应没有“成功”或“错误”触发后,表单没有重置……看起来没有回调。

谁能告诉我我做错了什么? 来自 php 的“回声”是否必须采用某种特定格式?我正在向 jQuery 发送一个简单的“文件:image.jpg(7487 字节)”。

问候。

【问题讨论】:

  • 尝试在success/error范围内添加resetForm:true
  • success, error, complete 本身就是回调。
  • 没有一个successerror 被调用。

标签: jquery ajax ajaxform


【解决方案1】:

这里是ajaxFrom 的小例子,它也返回回调事件:

<form id="imageform" enctype="multipart/form-data" action="get_img.php" method="post">
 <tr>
   <td valign="top"><label>Select File</label> :</td>
   <td><input type="file" name="myfile" id="myfile" /> <br />
   <em>.jpeg, .jpg, .gif, .png, .bmp</em>
   </td>
 </tr>
</form>

<div id="result"></div>

现在使用 jquery:

$(function(){
$('#myfile').live({
    change: function(){
            $('#result').ajaxStart(function(){
                $(this).html('<div class="loader" />');
            });

            $('#imageform').ajaxForm({
                                 target: '#result', 
                                 success: function(){ // Call Back Function } 
                            }).submit();
        }
});
});

这里实现ajaxFrom的目的是在没有点击事件的情况下提交图片,在上面的jquery代码中,我在Change上附加了事件,表单自动提交并调用get_img.php,即在行动中。

target 上,您可以通过文件get_img.php 获得返回的内容,
并在 success 上设置任何你想要的回调方法。

【讨论】:

  • 您好 Jogesh_p,感谢您的回复。我可以问你一个简单的例子,什么可能是 get_img.php 只是为了看看它是否是我可能在 php 上做错的事情。
  • @user1141673 点击链接:blog.webtech11.com/2012/03/18/…
  • 就是不知道怎么实现。 $(document).ready(function(){ 在哪里?
  • @jogesh_g 我是新手,你能解释一下你的建议吗?
  • @user1141673 $(function(){})$(document).ready(function(){}) 是一样的,你不必和这个混淆。
猜你喜欢
  • 1970-01-01
  • 2010-11-28
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
相关资源
最近更新 更多