2012-08-15 142 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>