我使用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)
一切正常.我的问题是为什么我需要将形式附加到身体上?我错过了什么.
编辑:它没有body在chrome中添加表单.
在不确定的情况下,我猜想DOM和Javascript的创建者看作form是一个固有的文档相关实体,并没有考虑能否提交一个没有附加到DOM的表单的可能性.
无论如何,如果你只是不想看到它,那么在你附上表格之前,做吧
form.style.visibility = 'hidden';
Run Code Online (Sandbox Code Playgroud)