jQuery - 仅在更改iframe src时在第二次单击时触发

时间:2010-01-16 22:45:20

标签: jquery iframe click src

我正在尝试在提交表单时更改iframe的src。

除非我按两次提交按钮,否则iframe src不会改变。但是,如果我只是将“提交”按钮的输入“类型”更改为“文本”,则它会在第一次单击时生效 - 但显然不会提交表单。

<script>

$(document).ready(function() { 
    $("#form1").submit(function() {
            $('#upload_frame').attr('src','upload-test.php');
    });
});

</script>

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <input id="file" type="file" name="file" />
  <input name="Submit" id="submit" type="submit" value="Submit" />
<br />
  <iframe id="upload_frame" name="upload_frame"> </iframe>
</form>

3 个答案:

答案 0 :(得分:1)

我想出了我遇到的问题。使用setTimeout函数解决了它。

    //show iframe on form submit
        $("#form1").submit(function(){

            if (show_bar === 1) { 
                $('#upload_frame').show();
                function set () {
$('#upload_frame').attr('src','upload_frame.php?up_id=<?php echo $up_id; ?>');
                }
                setTimeout(set);
            }
        });
    //

我正在使用此表格的项目可以在这里找到:

http://www.johnboy.com/php-upload-progress-bar

答案 1 :(得分:0)

您可以将类型更改为button并执行此操作...

$(document).ready(function() { 
    $("#submit").click(function() {
        $('#upload_frame').attr('src','upload-test.php');
        $("#form1").submit();
    });
});

答案 2 :(得分:0)

为什么不使用表单的target属性?

<form ... target="upload_frame">

应该这样做..

你不需要使用jQuery来获得浏览器的标准和支持功能..