2017-01-10 70 views
0

我想編寫一個表單發送表單到另一個窗口,然後重新加載窗體提交表單。 page2不在page1的同一個域,我不能訪問page2的代碼。提交onclick不工作

我的第一頁上目前的形式是這樣的:

<form target="_blank" method="post" action="https://www.page2.com"> 
 
<input type="hidden" name="input1" value="input1value"> 
 
<input type="submit" value="Submit" onclick="function1();window.location.refresh()"> 
 
</form>

窗體被成功發送和正在執行的功能,但該選項卡不會刷新。

+0

這是因爲事件的順序是:1)告訴窗口重新加載,2)表單提交,覆蓋重新加載操作。 – Aeolingamenfel

+0

所以我怎麼能解決這個問題?我試圖添加一個輸入類型的按鈕,並添加一個EventListener,重新加載頁面,然後提交表單,但它不工作。 – Serwj

+0

我不確定我是否遵循了你想要發生的功能。所以,當有人點擊你的提交按鈕時,會發生什麼?該頁面重新加載?當表單根據表單的set方法屬性將瀏覽器'POST'或'GET'提交給新頁面並顯示響應。你可以在響應中使用某種代碼來重新加載/重定向頁面? – Aeolingamenfel

回答

0

雖然您的使用案例目前並不明顯,但這可能很有用。 使用腳本處理提交,防止默認操作,發佈表單並重新加載頁面。

<form id="myForm" target="_blank"> 
<input type="submit" value="Submit" onclick="wait(event);" > 
</form> 

腳本

function wait(e) 
{ 
e.preventDefault(); 
document.getElementById('myForm').submit(); 
console.log('done!') 
window.location.reload(); 
} 
+0

它只是刷新我的頁面,但窗體不被髮送:/ – Serwj

+0

它打開新窗口/選項卡提交表單?你允許使用'jquery'嗎?你還可以在問題中分享「形式」嗎?刪除您不想分享的任何信息。只是想看到行動和目標。 – Searching

+0

我用表單更新了我的問題。 – Serwj

0

試試這個代碼,這將刷新你第1

 \t function function_one(){ 
 
    \t \t $.ajax({ 
 
    \t \t \t url: 'show.php', 
 
    \t \t \t type: 'POST', 
 
    \t \t \t data: {'value': $("#input1").val()}, 
 
    \t \t \t 
 
    \t \t \t success: function(data){ 
 
    \t \t \t \t 
 
    \t \t \t \t window.location.refresh(); 
 
    \t \t \t } 
 
    \t \t }); 
 
    \t }

 
    <form target="_blank"> 
 
    <input type="text" name="input1" value="input1value" id="input1"> 
 
    <input type="submit" value="Submit" onclick="function_one()"> 
 
    
 
    </form> 
 
    <p id="asfasf"></p> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
    
 

0

試試這個..

<form target="_blank" method="post" action="https://www.page2.com"> 
<input type="hidden" name="input1" value="input1value"> 
<input type="submit" value="Submit"onclick="window.location.reload();"> 
</form>