Javascript form.submit()在Firefox中不工作

Javascript form.submit()在Firefox中不工作,javascript,forms,dojo,Javascript,Forms,Dojo,关于这一点和其他方面有几个问题/答案,但它们似乎都是JQuery特有的,并且似乎不适用于此(例如,我正在不创建新的表单对象,这是文档中的一个现有表单。而且我根本不使用JQuery) 我有一个表格,由于IE7兼容性的原因,必须在提交前进行修改。我必须从我的表单中去掉所有按钮标记,然后添加一个隐藏字段,但这都是在现有HTML页面上的现有表单中。此代码在IE和Chrome中正常工作,但在Firefox中不起作用(23和24版本都经过测试) buttonClickFunction(formName,bu

关于这一点和其他方面有几个问题/答案,但它们似乎都是JQuery特有的,并且似乎不适用于此(例如,我正在不创建新的表单对象,这是文档中的一个现有表单。而且我根本不使用JQuery)

我有一个表格,由于IE7兼容性的原因,必须在提交前进行修改。我必须从我的表单中去掉所有
按钮
标记,然后添加一个隐藏字段,但这都是在现有HTML页面上的现有表单中。此代码在IE和Chrome中正常工作,但在Firefox中不起作用(23和24版本都经过测试)

buttonClickFunction(formName,buttonObject){
var formObject=document.forms[formName];
var i=0;
//去掉按钮对象

对于(i=0;iFirefox,当您提交表单时,至少有一个提交按钮可用,这意味着应该有如下内容:

<button type="submit">Click me</button>
点击我
或:



当您在代码中使用第一个按钮时,它将不起作用(因为您在提交表单之前去掉了所有按钮)。当您使用第二个选项时,它也会在Firefox中工作。正如您在本小提琴中所看到的:

对于任何在页面位置更改/重新加载后提交Firefox的人,您需要将重定向代码放入$。post回调:

$(".form").submit(function(e){
    e.preventDefault();
    $.post("submit.php", {data: textData}, function(){
        history.go(-1);
    });
    return false;
});

form.submit()
在Firefox上不工作,但在其他浏览器上工作时,我也有类似的行为。只要确保表单中的所有按钮都包含
type=“button”

这就是问题所在-Firefox显然不会提交没有任何按钮的表单。不确定这是为什么,或者这是否是“故意的”行为。长期以来都是这样的,所以如果这不是故意的,我想他们现在已经解决了。我知道这一点的唯一原因是因为我曾经有过类似的问题(但两年多前:p)非常感谢-如果没有您,我无法修复此问题。请注意,其他任何人看到此问题时,您还需要确保元素被附加到文档正文中,而不仅仅是它有一个提交按钮。如果此操作不起作用,请使用
form.style.display=“none”;
document.body.appendChild(表单)尝试这些行
正如@carterh062所说,确保表单位于DOM中。动态生成的表单在提交之前需要追加。是的,其他所有操作都失败了。type=submit甚至不起作用。
<input type="submit" value="Click me" />
$(".form").submit(function(e){
    e.preventDefault();
    $.post("submit.php", {data: textData}, function(){
        history.go(-1);
    });
    return false;
});