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

Posted

技术标签:

【中文标题】jQuery - 更改 iframe src 时仅在第二次单击时触发【英文标题】:jQuery - only fires on second click when changing iframe src 【发布时间】:2011-01-05 22:57:47 【问题描述】:

我正在尝试在提交表单时更改 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>

【问题讨论】:

【参考方案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

【讨论】:

【参考方案2】:

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

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

【讨论】:

Nick - 听起来是个好主意,但该代码根本不提交表单。我希望正常提交表单,并刷新页面。感谢您的快速回复,如果您有任何其他想法,请告诉我。 如果表单提交并刷新了整页......你在 jQuery 中对 iframe 所做的任何事情都会丢失,也许我误解了你的目标? 这是我正在做的工作:johnboy.com/php-upload-progress-bar 唯一的问题是当页面加载时——jQuery 会自动开始调用 URL 以获取文件状态/进度。我希望仅在提交表单时才调用 iframe - 因此它仅在实际提交表单时才开始调用以更新进度。表单johnboy.com/php-upload-progress-bar/upload.phps iframe johnboy.com/php-upload-progress-bar/upload_frame.phps【参考方案3】:

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

<form ... target="upload_frame">

应该这样做..

而且您不需要借助 jQuery 来获得浏览器的标准和受支持的功能..

【讨论】:

以上是关于jQuery - 更改 iframe src 时仅在第二次单击时触发的主要内容,如果未能解决你的问题,请参考以下文章

通过单击链接更改 iframe src

jQuery 更改 iFrame 的内容

iFrame src 更改事件检测?

在 iFrame jQuery 中重定向表单提交时未检测到更新的 Src 属性

jQuery - 在 iframe 导航上运行代码?

【新手】jquery iframe的src动态赋值问题