用Javascript window.open打开新窗口

时间:2014-04-03 15:07:46

标签: javascript jquery

我正在尝试在提交表单时打开一个新窗口,我有以下代码:

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

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

然而,这会导致错误,如何正确附加window.open?感谢。

3 个答案:

答案 0 :(得分:0)

我认为你在寻找的是:

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

有关window.open的更多信息。

答案 1 :(得分:0)

这应该是这样的:

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

答案 2 :(得分:0)

有两种方法可以解决这个问题:

  1. 使用&#34;动作&#34; +&#34; target = _blank&#34;

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

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

    显示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"));
      });