2010-01-16 155 views
0

我试图在提交表单时更改iframe的src。jQuery - 仅在更改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> 

回答

0

您可以将类型更改为button,并做到这一点...

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

尼克 - 听起来是个好主意,但形式不使用此代码在所有提交。我正在寻找正常提交表单,刷新页面。感谢您的快速反应,并让我知道你是否有更多的想法。 – johnboy 2010-01-16 23:09:19

+0

如果表单提交并完成整页刷新......无论如何,您在jQuery中对iframe所做的任何操作都将丢失,也许我误解了您之后的内容? – 2010-01-16 23:12:50

+0

这是我的工作: http://www.johnboy.com/php-upload-progress-bar/ 唯一的问题是,当页面加载 - jQuery自动开始调用URL到获取文件状态/进度。 我想只在提交表单时调用iframe - 因此它只有在实际提交表单时才开始调用更新进度。 形式 http://www.johnboy.com/php-upload-progress-bar/upload.phps IFRAME http://www.johnboy.com/php-upload-progress-bar/upload_frame.phps – johnboy 2010-01-16 23:21:14

0

你为什么不使用表单的目标属性?

<form ... target="upload_frame"> 

应该这样做..

而且你不需要求助于jQuery的为浏览器的标准,支持的功能..

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

相关问题