2017-03-31 63 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目前運行(因此)現在。

如果我手動單擊「確定」按鈕,憑證代碼123549將被傳遞到購物車並應用。

不過,如果我使用:

<script> 
window.onload = function(){ 

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

觸發形式,沒有任何價值傳承下去。

任何想法我失蹤?

+0

爲什麼你在所有的引號的前面有斜線? – aynber

+0

開始標籤??? –

回答

0

按照原樣添加了您的表單,在表單外添加了一個按鈕以測試程序提交,工作正常。斜槓導致各種問題,但這是你的PHP ...

當然,沒有實際提交表單到某個地方,我們得到一個奇怪的錯誤。作爲示例,我爲窗體上的提交函數創建了一個事件偵聽器。當單擊窗體的按鈕時,form.submit被觸發,但是當我調用form.submit()時,它不是。一個小問題,但值得注意。

/*** 
 
* 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!" />

現在,有一種方法可以有兩種功能運行相同的功能:而不是使用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.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!" />