带有 2 个提交按钮的表单

Form with 2 submit buttons

我有一个带有 2 个提交按钮的表单。表单生成 URL.

表单的 2 个输出是:

  1. 它将 URL 写入隐藏的 div,当他们单击“预览”按钮时显示,并且
  2. 当他们单击“打开”按钮时,它会在新的 window 中启动相同的 URL。

我可以写入隐藏的 DIV,因此预览功能完美运行。

我的问题是:

我无法使 window.open 功能与“打开”按钮一起正常工作。

当我单击按钮时,当我最初在 "firstfield" 输入区域中输入不同的域时,我得到“http://www.my_current_domain.com/undefined”。

这是我的脚本示例:

<script type="text/javascript">
    function myfunction() {
        var firstfield = document.getElementById('firstfield').value;
        ...repeated.. for 7 more fields...
        /* Base 64 Encode the username and password */
        var UserPassword64Encoded = User + ":" + Password;
        var UserPassword64Encoded = btoa(UserPassword64Encoded);
        /* here is where I assemble the URL */
        document.getElementById('results').innerHTML = firstfield + "?some_static_info=" +
        ... repeated 7 more times...;
        document.getElementById('results').style.display = "block";
        return false;
    }
</script>

这是我的表单示例:

<form name="myForm" onSubmit="return myfunction();">
    <input  type="text" id="firstfield" name="firstfield"/>
    ... repreated 7 more times...
    <input type="submit" value="Preview"/>
    <input type="submit" onClick="window.open(myForm.results)" value="Open"/>
</form>
/* Hidden DIV */
<div id="results">
</div>

我已经在这个问题上工作了 2 天了,现在正在兜圈子。

如有任何建议,我们将不胜感激。

此致, 丹尼斯·霍尔

您无法以您尝试的方式获得 'results'。您需要尝试通过 ID 参考获取它,如下所示:

<form name="myForm" onSubmit="return myfunction();">
    <input  type="text" id="firstfield" name="firstfield"/>
    ... repreated 7 more times...
    <input type="submit" value="Preview"/>
    <input type="submit" onClick="window.open(document.getElementById('firstField').value + '/' + document.getElementById('results').value);" value="Open"/>
</form>
/* Hidden DIV */
<div id="results">
</div>

编辑: 并确保 window.open 不认为它是亲戚 URL,确保它以协议开头,例如 http:/ / 或 https://。