我需要在發生事件時創建一個包含少量輸入的表單。我的代碼如下。Firefox將不會提交由JavaScript創建的表單
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中。 – BalusC
@Balus:甚至更好,提交後刪除它? – JCOC611
@JCOC:這是一個無關緊要的問題:)無論如何,頁面將被刷新,因爲OP不使用AJAX的東西。 – BalusC