load(fn)和ready(fn)之间的区别是什么

时间:2009-09-20 20:48:37

标签: jquery ajax iframe upload

...在我需要检查的一个元素的上下文中?

我从来没有遇到过使用没有jQuery的iframe上传的问题,但现在我想从ajax回调上传包含表单,iframe:

<form enctype="multipart/form-data" action="get.imageupload.php" id="upload_form" method="post">
    <input name="userfile" type="file" id="file" />
    <input type="submit" name="action" value="start" />
    <input type="hidden" name="id" value="<?=$id;?>" />
    <iframe id="upload_target" name="upload_target" src="" style="width:0;height:0;border:0"></iframe>
</form>

以及以下js:

$("#upload_form").submit(function() {
    $(this).attr("target","upload_target");
    $("iframe", this).load(function() {
        var ret = $("iframe", "#upload_form").contents().find("body").html();
        var data = eval("("+ret+")");
        if (data.success) alert("success"); // todo
        if (data.failure) alert("fail");    // todo
    });
    return false;
});

我必须处理来自get.imageupload.php的返回JSON数据的请求,因此js看起来像那样。 问题是:load(fn)不起作用; ready(fn)确实如此,但是iframe是空的,因为事件在上传开始之前就会触发......我是jQuery的新手,也许还有另一种方式?

有什么想法吗?

感谢名单

1 个答案:

答案 0 :(得分:1)

我不明白为什么你会使用iframe而不是div或类似东西加载所有内容。

我们的想法是将数据加载到某个异步元素中。

我建议你插入一个提交按钮,这样你就可以开始做任何你想做的事情。这是一种轻量级的简单方法,可以进行“AJAX上传”。

希望这对任何帮助。