2012-08-15 143 views
0

我有我想要的数据提交给远程服务器上的形式,例如下面HTML表单提交数据

<html> 
<head> 
</head> 
<form action="http://www.example.com/post.php" method="post"> 
<input type="text" name="input1" value="test1" /> 
<input type="text" name="input2" value="test2" /> 
<input type="submit" name="send" value="Submit" /> 
</form> 
</body> 
</html> 

我试图自动提交这样

<html> 
<head> 
</head> 
<form action="http://www.example.com/post.php" method="post"> 
<input type="text" name="input1" value="test1" /> 
<input type="text" name="input2" value="test2" /> 
<script type="text/javascript"> 
document.forms[0].submit(); 
</script> 
</form> 
</body> 
</html> 
数据

如果第一个例子没有(name =“send”)名字,但是它的名字没有提交,那么它工作正常。我的问题是我将如何去发送带有名称的输入按钮的数据。

谢谢

回答

1

注:答案竟然是type="hidden"而不是type="submit",其中第二不允许DOM提交,同时提交一个input的在GET/POST数据值。 type="hidden"这样做,它在这里工作,因为按钮不需要物理地点击。


选择一个:

<form name="formname" id="formid" action="http://www.example.com/post.php" method="post"> 
<input type="text" name="input1" value="test1" /> 
<input type="text" name="input2" value="test2" /> 
<input type="submit" name="send" value="Submit" /> 
</form> 
<script type="text/javascript"> 
if (confirm('Ok for "formname", Cancel for "getElementById"')) { 
    console.log('document.formname.submit()'); 
    document.formname.submit(); 
} else { 
    console.log('document.getElementById("formid").submit()'); 
    document.getElementById('formid').submit(); 
} 
</script> 

http://jsfiddle.net/userdude/EAmwj/3

+1

我试了一下,我认为有一些混淆不是表单名称,它的按钮提交有一个名称,它正在寻找名称=“发送”没有它的名称,它不提交。 – 2012-08-15 00:21:59

+0

它仍然可以用'button'工作:http://jsfiddle.net/userdude/EAmwj/3/注意,你需要Firefox中的Firebug(或者带有'console',Chrome(本地'控制台'或者IE9本地控制台) – 2012-08-15 00:24:09

+1

是的,你的例子将提交表单,所以我的第二个例子。问题是远程服务器正在寻找名称=“发送”,如果它没有看到它,它不会提交任何东西。 – 2012-08-15 00:26:56

1

你的JavaScript代码将得到尽快在页面加载执行。这就是为什么它立即提交。

你需要将JS代码包装在一个函数中,让一个事件从页面调用它。

您可以使用常规按钮并为按钮的onclick事件设置功能。


<html> 
<head> 

<body> 
<form action="http://www.example.com/post.php" method="post"> 
<input type="text" name="input1" value="test1" /> 
<input type="text" name="input2" value="test2" /> 
<input type="button" name="send" value="test2" onclick="doSubmit()" /> 

<script type="text/javascript"> 
function doSubmit() { 
document.forms[0].submit(); 
} 
</script> 
</form> 
</body> 
</html>