Firefox不会提交由JavaScript创建的表单 [英] Firefox won't submit a form created by JavaScript

查看:72
本文介绍了Firefox不会提交由JavaScript创建的表单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当事件发生时,我需要创建一个带有少量输入的表单.我的代码在下面.

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

Chrome可以很好地提交-显示警报框,并且页面也会更改.

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

Firefox不起作用-显示警报框,但页面保持不变. 如何让Firefox提交表单?

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

推荐答案

FF要求它已经在DOM中.将form设置为display:none并将其添加到DOM中的现有元素中,然后提交.

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.

这篇关于Firefox不会提交由JavaScript创建的表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆