2010-01-16 83 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

相關問題