javascript - 无法使用 JS 表单提交功能发布
问题描述
在这个网页中,我有一个带有提交按钮的可见表单,称为表单 A。它有一个发布操作。
<form name="payFormCcard" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
我想做一个不可见的表单,从表单 A 中提取一些数据,使用隐藏输入按钮的方法。它自动执行表单并使用 JS 发布到另一个地方。
但是,如果我添加真正的按钮,它可以工作并发布到适当的位置。
<input type="submit" name="submission_button" value="Click here if the site is taking too long to redirect!">
这是我的代码(没有真正的按钮):
<form name="A" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> <== first visable form
.....
//invisible table
<form name="payForm" method="post" action=" https://test.paydollar.com/b2cDemo/eng/payment/payForm.jsp">
<input type="hidden" name="merchantId" value="sth">
<input type="hidden" name="amount" value="</?php echo $input_amount; ?>" >
<input type="hidden" name="orderRef" value="<?php date_default_timezone_set("Asia/Taipei"); $date = date('m/d/Y h:i:s a', time()); echo $date ; ?>">
<input type="hidden" name="currCode" value="sth" >
<input type="hidden" name="mpsMode" value="sth" >
<input type="hidden" name="successUrl" value="http://www.yourdomain.com/Success.html">
<input type="hidden" name="failUrl" value="http://www.yourdomain.com/Fail.html">
<input type="hidden" name="cancelUrl" value="http://www.yourdomain.com/Cancel.html">
...
<!-- <input type="submit" name="submission_button" value="Click here if the site is taking too long to redirect!">-->
</form>
<script type="text/javascript">
//Our form submission function.
function submitForm() {
document.getElementById('payForm').submit();
}
//Call the function submitForm() as soon as the page has loaded.
window.onload = submitForm;
</script>
解决方案
您应该使用DOMContentLoaded而不是load来确保成功加载 DOM 元素。
尝试执行以下操作:
<script type="text/javascript">
//Our form submission function.
function submitForm() {
document.getElementById('payForm').submit();
}
//Call the function submitForm() as soon as the document has loaded.
document.addEventListener("DOMContentLoaded", function(event) {
submitForm();
});
</script>
推荐阅读
- python - 如何在 AllenNLP git repo 中编写对分类模型的配置文件?
- arduino - 将字节数组转换为字符串,然后将其与arduino中的字符串匹配
- assembly - 二元炸弹 [第 5 阶段]
- github - 搜索组织在 github 中创建的存储库
- google-cloud-platform - 如何使用 GitLab 存储库作为谷歌云负载均衡器的后端?
- javascript - CSS 和 JS 文件不会加载到 node.js 服务器上
- linux - 尝试通过 terraform 创建数字海滴时出错
- node.js - 在 openwrt 中安装 node-hid
- reactjs - 如何使用 webpack 加载 json 文件的文件夹?[single-spa] [react js]
- postgresql - 最近有人在 POSTGRESQL 13 中使用 SERAIL 类型而不是 SEQUENCE 吗?