2014-04-03 201 views
0

我想要當一個表單提交給打開一個新的窗口,我有以下代碼:使用JavaScript打開新窗口window.open

var action = window.open("http://myurl.com" + code + "&rp=" + window.rp + "23-421B-A4A2-";) 

$('#theForm').attr("action", action); 

但是會導致一個錯誤,我怎麼追加窗口。打開正確?謝謝。

+0

有什麼錯誤?請具體說明。 – dgvid

+1

表單動作是一個URL,而不是一個JS函數。你需要一個onsubmit處理程序。 – andi

回答

0

有解決這兩種方式:

  1. 使用 「動作」 + 「TARGET = _blank」

    var action = "http://myurl.com" + code + "&rp=" + window.rp + "23-421B-A4A2-"; 
    $("#theForm").attr("action", action).atrr("target", "_blank"); 
    
  2. 使用「onsubmit」事件

    $("#theForm").on("submit", function(e) { 
        e.preventDefault(); 
        window.open("http://myurl.com" + code + "&rp=" + window.rp + "23-421B-A4A2-"); 
    } 
    

編輯:

你展示你的HTML後,有其他問題還有:

  • 您沒有使用一個提交按鈕,您使用的圖像輸入代替。
  • 你在你的JS有這樣的代碼:

    $('#submit').click(function($e) { 
        $e.preventDefault(); //Don't want button submitting the form because the action is not correct 
        if (window.console) console.log($('#theForm').attr("action")); 
        window.parent.location = ($('#theForm').attr("action")); 
    }); 
    
  • 所以,你需要修改這個代碼(或類似的東西):

    $('#submit').click(function($e) { 
        $e.preventDefault(); //Don't want button submitting the form because the action is not correct 
        if (window.console) console.log($('#theForm').attr("action")); 
        window.open($('#theForm').attr("action")); 
    }); 
    
+0

我早些時候嘗試過「動作」+「目標= _空白」,但沒有運氣,「onsubmit」事件似乎也沒有 – user3087370

+0

向我們顯示您的HTML。 – Buzinas

+0

我已經更新了我的答案。 – Buzinas

0

我想你正在尋找的是這樣的:在window.open

$('#theForm').click(function(event) { // or $('#theForm').submit(function(event) { 
    event.preventDefault(); 
    window.open("http://myurl.com" + code + "&rp=" + window.rp + "23-421B-A4A2-", windowHandle); 
}); 

更多信息。

+1

我認爲你的意思是「提交」,而不是「點擊」。 – andi

+0

沒有HTML,它只是猜測:) –

0

這應該是這樣的:

<form id="theForm" action="http://myurl.com/.../...?..." target="_blank"></form> 
相關問題