2017-03-31 40 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!" />