我有以下内容:
<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(因此)中运行。
如果我点击&#34;确定&#34;手动按钮,凭证代码123549将传递到购物车并应用。
但是,如果我使用:
<script>
window.onload = function(){
document.getElementById(\"vouchertwo\").submit();
}
</script>
触发表单,没有传递任何值。
我缺少什么想法?
答案 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);
})
&#13;
<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!" />
&#13;
现在,有一种方法可以让两个函数运行相同的功能:而不是使用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 );
})
&#13;
<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!" />
&#13;