当事件发生时,我需要创建一个带有几个输入的表单。我的代码如下:
在 Chrome 中,提交正常 - 弹出框显示且页面更改。
但是在 Firefox 中无法工作 - 弹出框显示但页面保持不变。我该如何让 Firefox 提交表单?
var idsInput = document.createElement('input');
idsInput.name = 'itemIds';
idsInput.value = ids;
var quantityInput = document.createElement('input');;
quantityInput.name = 'quantity';
quantityInput.value = 1;
var authTokenInput = document.createElement('input');
authTokenInput.name = 'authenticityToken';
authTokenInput.value = '${session.getAuthenticityToken()}';
var submitInput = document.createElement('input');
submitInput.type = 'submit';
submitInput.value = 'anything';
var form = document.createElement('form');;
form.action = '@{Checkout.setItemsQuantityHandler}';
form.method = 'POST';
form.elements[0] = idsInput;
form.elements[1] = quantityInput;
form.elements[2] = authTokenInput;
form.elements[3] = submitInput;
form.submit();
alert('after submit()'); // for debugging only
display:none
并将其添加到 DOM 中的现有元素中,然后提交它。我想象 Firefox 要求它已经在 DOM 中了。 - BalusCdisplay:none
。 - JCOC611document.body.appendChild(form);
可以使用。谢谢!如果你想把它作为答案,我会接受的。 - Amy Bdisplay:none
。 - BalusC