jQuery iframe多次加载

Par*_*ris 2 iframe upload jquery 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());
    });
});
Run Code Online (Sandbox Code Playgroud)

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

小智 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());
    });
});
Run Code Online (Sandbox Code Playgroud)

要么:

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

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

$("#myform").submit(function () {
    alert(submited);
});
Run Code Online (Sandbox Code Playgroud)