Firefox won't submit a form created by JavaScript

I need to create a form with a few inputs when an event happens. My code is below.

Chrome submits fine - the alert box shows and the page changes.

Firefox does not work - the alert box shows but the page stays the same. How can I get Firefox to submit the form?

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

Answers


FF requires it to be in the DOM already. Set form to display:none and add it to an existing element in DOM and then submit it.


Try This...

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; document.body.appendChild(form); form.submit();


Need Your Help

Slowdown of Microsoft Visual Studio due to different Virus scanner

visual-studio file-io antivirus

What is the least slow Virus scanner to use with Microsoft Visual Studio

How to force LINQ Sum() to return 0 while source collection is empty

c# .net entity-framework

Basically when I do the following query, if no leads were matched the following query throws an exception. In that case I'd prefer to have the sum equalize 0 rather than an exception being thrown.