jQuery iframe загружается несколько раз - PullRequest
2 голосов
/ 25 июня 2011

Я создаю скрипт для загрузки файлов с использованием 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 Ответ

6 голосов
/ 25 июня 2011

Похоже, что вы добавляете новый обработчик для $ ("# 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);
});
...