Necesito crear un formulario con algunas entradas cuando ocurre un evento. Mi código está abajo.Firefox no enviará un formulario creado por JavaScript
Chrome presenta una respuesta correcta: se muestra el cuadro de alerta y la página cambia.
Firefox no funciona: el cuadro de alerta muestra pero la página sigue siendo la misma. ¿Cómo puedo hacer que Firefox envíe el formulario?
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
Disparar en la oscuridad: configure el formulario para 'mostrar: ninguno' y agréguelo a un elemento existente en DOM y luego preséntelo. Me imagino que FF requiere que ya esté en DOM. – BalusC
@Balus: o mejor aún, ¿eliminarlo después de enviar? – JCOC611
@JCOC: eso no es una preocupación para este problema específico :) La página se actualizará de todos modos ya que OP no usa material ajaxical. – BalusC