5

通常のフォーム送信コードとは本質的に異なるphpコードを実行するボタンをフォームに追加しようとしています。これは、フォームをメールで送信する代わりに、ページを印刷可能な素敵なpdfに変換します。ボタンを押すとエラーが発生することを除いて、すべてが機能しています。

Firebug 言います: ここに画像の説明を入力

コードは次のとおりです。

<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

Don't use inputs with name="submit"

Make also sure, if you want to use the .submit() method - that you don't have any name="submit" input in your form. Call it differently if really needed like i.e name="button_submit".

Here's the issue with name="submit" inputs: they overtake the function submit since any element with a set name attribute becomes a property of that form Element.
Example of the problem:

// 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 に答える
0

ブロック括弧を変更します: []

丸括弧: ()

角括弧は新しい配列を意味します。

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