【发布时间】:2011-03-06 02:24:36
【问题描述】:
当事件发生时,我需要创建一个包含一些输入的表单。我的代码如下。
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 中的现有元素中,然后提交。我想 FF 要求它已经在 DOM 中了。 -
@Balus:或者更好,提交后删除?
-
@JCOC:这与这个特定问题无关 :) 页面无论如何都会被刷新,因为 OP 不使用 ajaxical 的东西。
-
是的,那会代替
display:none -
@Balus -
document.body.appendChild(form);工作。谢谢!如果您想将其作为答案,我会接受。
标签: javascript forms firefox3.6