【问题标题】:Form submit doesn't happen while opening the link in a new tab在新选项卡中打开链接时不会发生表单提交
【发布时间】:2017-06-23 04:23:38
【问题描述】:

我有一个带有 javascript 提交功能的表单。 我在表单中有 3 个链接(锚标记),并希望根据单击的链接在提交时为隐藏参数设置不同的值

表单提交通常可以正常工作,但如果我尝试在新选项卡中打开链接,则不会提交表单。 javascript函数中的警报是 未打印。有没有人有办法解决这个问题?

下面是示例代码:

<html>

    <head>
        <script type="text/javascript">
            function submitForm(actionParam) {
            alert("in submitForm");
            document.getElementById("action").value = actionParam;
            document.forms['myForm'].action = action;
            document.forms['myForm'].submit();
        }
        </script>
    </head>

    <body>

        <form name="myForm" id="myForm" method="post" action="/businesspanel">
            <input type="hidden" id="action" name="action" value="" />

            <a href="#" onclick="submitForm('action1');">Action 1</a></span>
            <a href="#" onclick="submitForm('action2');">Action 2</a></span>
            <a href="#" onclick="submitForm('action3');">Action 3</a></span>

        </form>

    </body>
</html>

【问题讨论】:

    标签: javascript html forms form-submit new-window


    【解决方案1】:

    在新窗口中打开链接会绕过 JavaScript。不要使用链接/JS提交表单。

    只需使用提交按钮。您甚至可以在不涉及 JS 的情况下发送您的识别值。

    <button name="action" value="action1">Action 1</button>
    <button name="action" value="action2">Action 2</button>
    <button name="action" value="action3">Action 3</button>
    

    【讨论】:

    • 谢谢。我现在使用 而不是 Action 1 我仍然需要在新标签中打开其中的一些,而不是全部。
    【解决方案2】:
    document.forms['myForm'].action = action;
    

    此处未定义“动作”。如果您想在新标签中打开链接,请执行以下操作:

    document.forms['myForm'].target= '_blank';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 2019-05-21
      • 2022-07-30
      相关资源
      最近更新 更多