我希望使用JavaScript动态地在HTML页面的任何位置创建一个不可见的表单,然后自动提交 我想创建下面给出的表单:
<form name='myForm' method='post' action='http://www.another_page.com/index.htm'>
<input type='text' name='myInput' value='Values of my input'>
<input type='hidden1' value='Hidden value 1'>
<input type='hidden2' value='Hidden value 2'>
</form>
我尝试使用以下JavaScript:
my_form=document.createElement('FORM');
my_form.name='myForm';
my_form.method='POST';
my_form.action='http://www.another_page.com/index.htm';
my_tb=document.createElement('INPUT');
my_tb.type='TEXT';
my_tb.name='myInput';
my_tb.value='Values of my Input';
my_tb.appendChild(my_form);
document.body.add(my_form,document.body.elements[0]);
document.my_form.submit();
但不工作?我怎样才能做到这一点?请帮忙。
答案 0 :(得分:25)
您将表单元素添加为文本框的子项。
my_tb.appendChild(my_form);
应该是
my_form.appendChild(my_tb);
另外,我没有看到你在哪里创建隐藏元素,但它与添加文本框是一样的。
另一个问题 - 尝试将表单引用为document.xxx意味着xxx是表单的名称。但无论如何,试试
my_form=document.createElement('FORM');
my_form.name='myForm';
my_form.method='POST';
my_form.action='http://www.another_page.com/index.htm';
my_tb=document.createElement('INPUT');
my_tb.type='TEXT';
my_tb.name='myInput';
my_tb.value='Values of my Input';
my_form.appendChild(my_tb);
my_tb=document.createElement('INPUT');
my_tb.type='HIDDEN';
my_tb.name='hidden1';
my_tb.value='Values of my hidden1';
my_form.appendChild(my_tb);
document.body.appendChild(my_form);
my_form.submit();
答案 1 :(得分:2)
var myform = document.createElement("form");
product = document.createElement("input");
product.value = JSProduct;
product.name = "Product";
myform.action = "myForm.aspx";
myform.method = "post";
form1.appendChild(product);
document.body.appendChild(form1);
form1.submit();
这将创建一个表单并且有一个子元素产品(“输入类型”),您必须将子元素附加到父元素,如产品形成和形成DOM根元素主体和文档,您可以添加一个元素形式作为行动和方法这将做你的事。
答案 2 :(得分:2)
你也可以做Saurabh Chauhan的反应但不添加动态元素到身体 这个解决方案都是动态解决方案。
var myform = document.createElement("form");
myform.action = "myForm.aspx";
myform.method = "post";
product = document.createElement("input");
product.value = "value";
product.name = "name";
myform.appendChild(product);
myform.submit();
答案 3 :(得分:1)
您可以尝试使用简单的方法:
<script type="text/javascript">document.write("[the form's HTML]");</script>
在某个地方的身体里面。然后,要提交表单,请添加:
<script type="text/javascript">document.my_form.submit();</script>
这可以防止以编程方式创建DOM时出错。