带有 2 个提交按钮的表单
Form with 2 submit buttons
我有一个带有 2 个提交按钮的表单。表单生成 URL.
表单的 2 个输出是:
- 它将 URL 写入隐藏的 div,当他们单击“预览”按钮时显示,并且
- 当他们单击“打开”按钮时,它会在新的 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://。
我有一个带有 2 个提交按钮的表单。表单生成 URL.
表单的 2 个输出是:
- 它将 URL 写入隐藏的 div,当他们单击“预览”按钮时显示,并且
- 当他们单击“打开”按钮时,它会在新的 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://。