为什么我需要将表格附加到身体上

Sat*_*pal 2 javascript forms

我使用JavaScript创建了一个表单

//Create a form 
var form = document.createElement('FORM');
form.name = 'myForm';
form.method = 'POST';
form.action = 'SomePath';
//Create  a hidden filed
var hidden = document.createElement('INPUT');
hidden.type = 'HIDDEN';
hidden.name = 'MyHiddenField';
hidden.value = 'MyHiddenFieldValue';
form.appendChild(hidden);
//Submit form
form.submit();
Run Code Online (Sandbox Code Playgroud)

当脚本执行时.执行所有语句没有任何错误.但表格实际上并未提交.

但是,当我附加文件时.喜欢

document.getElementsByTagName('body')[0].appendChild(form);

//Submit form
form.submit();
Run Code Online (Sandbox Code Playgroud)

一切正常.我的问题是为什么我需要将形式附加到身体上?我错过了什么.

编辑:它没有bodychrome中添加表单.

Fau*_*ust 5

在不确定的情况下,我猜想DOM和Javascript的创建者看作form是一个固有的文档相关实体,并没有考虑能否提交一个没有附加到DOM的表单的可能性.

无论如何,如果你只是不想看到它,那么在你附上表格之前,做吧

form.style.visibility = 'hidden';
Run Code Online (Sandbox Code Playgroud)