Ho bisogno di creare un modulo con pochi input quando si verifica un evento. Il mio codice è sottoFirefox non invierà un modulo creato da JavaScript
Chrome inoltrato correttamente: viene visualizzata la finestra di avviso e la pagina cambia.
Firefox non funziona: la finestra di avviso mostra ma la pagina rimane la stessa. Come posso ottenere che Firefox invii il modulo?
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
Spara al buio: imposta il modulo su 'display: none' e aggiungilo a un elemento esistente in DOM e quindi inviarlo. Immagino che FF richieda che sia già nel DOM. – BalusC
@Balus: o ancora meglio, cancellarlo dopo l'invio? – JCOC611
@ JCOC: questo non è un problema per questo specifico problema :) La pagina verrà aggiornata comunque poiché OP non usa roba jaxical. – BalusC