0

我知道你们中的很多人已经在数百篇文章中提到了这一点,但我没有看到任何人遇到像我这样的问题。

我正在尝试实现 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>

查询:

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

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

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

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

问候。

4

1 回答 1

0

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您设置任何您想要的回调方法时。

于 2012-10-10T08:40:16.110 回答