2017-03-31 8 views
0

私は、次の下にあります。自動提出データなし

<form action=\"http://example.co.uk/order\" method=\"post\" id=\"vouchertwo\" > 
    <input type=\"hidden\" id=\"discount_name\" name=\"discount_name\" value=\"123549\"> 
    <input type=\"hidden\" name=\"submitDiscount\"> 
    <button type=\"submit\" name=\"submitAddDiscount\" class=\"button btn btn-default button-small\"><span>OK</span></button> 
    </fieldset> 
</form> 

は現在、PHPで(したがって)今のを実行しています。

「OK」ボタンを手動でクリックすると、バウチャーコード123549がカートに渡され、適用されます。私が使用している場合

しかし、:

<script> 
window.onload = function(){ 

document.getElementById(\"vouchertwo\").submit(); 
} 
</script> 

フォームをトリガするために、何の値が一緒に渡されません。

アイデアは何ですか?

+0

:このオプションを見てみましょうか? – aynber

+0

開始タグはどこですか? –

答えて

0

フォームをそのまま使用して、フォームの外側にボタンを追加してプログラムでテストしても問題ありません。スラッシュはさまざまな問題を引き起こしていますが、それはあなたのためのPHPです...

もちろん、どこかにフォームを送信せずに、奇妙なエラーが発生します。サンプルとして、フォーム上のsubmit関数のイベントリスナーを作成しました。フォームのボタンをクリックすると、form.submitがトリガされますが、私がform.submit()を呼び出すと、それはそうではありません。小さな落とし穴だが、注目に値する。むしろ、form.submit()を使用するよりも、()formElement.submitButtonElement.clickを使用します。

/*** 
 
* Created a dummy button that, when clicked, 
 
* submits the full form. 
 
***/ 
 
var myDummyButton = document.getElementById("dummyBtn"); 
 
var myForm = document.getElementById("vouchertwo"); 
 

 
myDummyButton.addEventListener("click", function(evt){ 
 
    evt.preventDefault(); 
 
    document.getElementById("vouchertwo").submit(); 
 
}) 
 

 
myForm.addEventListener("submit", function(evt){ 
 
    evt.preventDefault(); 
 
    console.log(this); 
 
})
<form action="#" method="post" id="vouchertwo"> 
 
    <input type="hidden" id="discount_name" name="discount_name" value="123549"> 
 
    <input type="hidden" name="submitDiscount"> 
 
    <button type="submit" name="submitAddDiscount" class="button btn btn-default button-small"><span>OK</span></button> 
 
</form> 
 

 
<input type="button" id="dummyBtn" value="Do it!" />

は今、両方の機能は、同じ機能を実行させる方法があります。これにより、両方のメソッドが実際にフォームのサブミット・リスナーをトリガーします。あなたが引用符のすべての前にスラッシュを持っていないのはなぜ

/*** 
 
* Created a dummy button that, when clicked, 
 
* submits the full form. 
 
***/ 
 
var myDummyButton = document.getElementById("dummyBtn"); 
 
var myForm = document.getElementById("vouchertwo"); 
 

 
myDummyButton.addEventListener("click", function(evt){ 
 
    evt.preventDefault(); 
 
    document.querySelector("#vouchertwo button").click(); 
 
}) 
 

 
myForm.addEventListener("submit", function(evt){ 
 
    evt.preventDefault(); 
 
    console.log(this.querySelector("#discount_name").value); 
 
})
<form action="#" method="post" id="vouchertwo"> 
 
    <input type="hidden" id="discount_name" name="discount_name" value="123549"> 
 
    <input type="hidden" name="submitDiscount"> 
 
    <button type="submit" name="submitAddDiscount" class="button btn btn-default button-small"><span>OK</span></button> 
 
</form> 
 

 
<input type="button" id="dummyBtn" value="Do it!" />

関連する問題