jQuery iframe多次加载

时间:2011-06-25 18:09:48

标签: jquery iframe upload loading

我正在使用jQuery和iFrame创建一个文件上传脚本。所以,我有一个id =“myform”和target =“myframe”的表单以及一个id =“myframe”和name =“myframe”的框架。当用户选择一个文件时,表单会自动被提交,并且在iframe加载结果后我会提醒他们。问题是我第一次上传文件时得到一个警报,第二次是第二次,第三次上传我得到三个。我的代码就像

$("#myform input").change(function () { 
    alert("submitting");
    $("#myform").submit();
});

$("#myform").submit(function () {
    alert(submited);
    $("#myframe").load(function () {
        alert ("loaded!");
        alert ($(this).contents().text());
    });
});

我多次获得的提醒是“已加载!”和$(this).contents()。text() 这意味着表单提交一次,iframe“加载”一次以上。我通过Chrome控制台验证了这一点,我的操作文件每次提交只调用一次。为什么会这样?

1 个答案:

答案 0 :(得分:6)

您似乎要为$(“#myframe”)添加新的处理程序。每次提交表单时都会加载。

尝试:

$("#myform input").change(function () { 
    alert("submitting");
    $("#myform").submit();
});

$("#myform").submit(function () {
    alert(submited);
    $("#myframe").unbind('load');
    $("#myframe").load(function () {
        alert ("loaded!");
        alert ($(this).contents().text());
    });
});

或:

$("#myform input").change(function () { 
    alert("submitting");
    $("#myform").submit();
});

$("#myframe").load(function () {
    alert ("loaded!");
    alert ($(this).contents().text());
});

$("#myform").submit(function () {
    alert(submited);
});