5

我正在尝试向我的表单添加一个按钮,该按钮本质上将运行一些与我的常规表单提交代码不同的 php 代码,而不是将我的表单通过电子邮件发送给我,而是将我的页面转换为准备打印的漂亮 pdf。除了按下按钮给我一个错误外,我一切正常。

萤火虫 说: 在此处输入图像描述

这是代码:

<form id="adaugareanunt" name="adaugareanunt" action="mailerPDF.php" method="post">
    <table width="535" border="0" cellspacing="2" cellpadding="3">
         <tr class="TrDark">
         //... more form code

对于按钮:

<div style="text-align:right"><img src="images/print-button.png" onClick="chgAction()" width="60px" height="20px"></div>

使用脚本:

<script language="JavaScript" type="text/JavaScript">
    function chgAction()
        {
            document.getElementById["adaugareanunt"].action = "mailerXFDF.php";
            document.getElementById["adaugareanunt"].submit();
            document.getElementById["adaugareanunt"].action = "mailerPDF.php";

        }
</script>
4

4 回答 4

9
document.getElementById["adaugareanunt"]

改成

document.getElementById("adaugareanunt")
于 2013-10-14T15:38:00.137 回答
4
const EL_form = document.getElementById("form"); 
EL_form.action = "someOtherURL.php";
EL_form.submit();
// PS! Make sure you don't have any name="submit" inputs in your form

不要使用输入name="submit"

如果您想使用该.submit()方法,还要确保您的表单中没有任何name="submit"输入。如果真的需要,请以不同的方式称呼它,例如 ie name="button_submit"

这是name="submit"输入的问题:它们超过了函数submit,因为任何具有 setname属性的元素都成为该表单元素的属性。
问题示例:

// EXAMPLE OF THE ISSUE:

const EL_form = document.getElementById("form");

// Why does EL_form.submit() not work?

console.log(EL_form.submit);   // It's the actual INPUT with name="submit"
console.log(EL_form.submit()); // Therefore the "Not a function" error. 
<form id="form">
  <input type="submit" name="submit">
</form>

于 2013-10-14T15:43:51.833 回答
1

这工作正常

<script language="javascript" type="text/javascript">
    function chgAction()
        {
              document.getElementById("adaugareanunt").action ="mailerXFDF.php";
              document.getElementById("adaugareanunt").submit();
              document.getElementById("adaugareanunt").action ="mailerPDF.php";

        }    
</script>
于 2014-02-12T14:18:31.033 回答
0

更改块括号:[]

圆括号:()

方括号表示新数组。

var ar = newArray( " a " , " b " ) ; 
var ar = [ " a " , " b " ] ;
于 2013-10-14T15:40:54.577 回答