2013-09-21 47 views
1

我想知道是否有任何方法(使用JS或其他方式)自動提交一個名爲id爲'submit'的字段。從本質上講,我的整個HTML代碼如下所示:JavaScript表單提交一個字段叫submit

<html> 
<body onload=myForm.submit()> 
<form id="myForm" name="myForm" action="http://example.com/examplePage.do" method="POST"> 
<input type=hidden name="val1" id="val1" value="some_Value"/> 
<input type=hidden name="val2" id="val2" value="another_Value"/> 
<input type=hidden name="val3" id="val3" value="yet_another_Value"/> 
<input type=hidden name="submit" id="submit" value="Continue"/> 
</form> 
</body> 
</html> 

顯然,myForm.submit()返回一個myForm.submit is not a function錯誤。如果沒有「提交」字段的值爲「繼續」,則服務器拒絕該請求,並且要求自動提交該字段。

回答

6

該表單的提交功能完全無法訪問(它已被覆蓋)。你可以從另一個表格中偷取一個。

document.createElement('form').submit.call(document.getElementById('myform')) 

在old-IE中不起作用。 (我認爲從IE7開始支持)

+0

我嘗試這樣做。我現在得到一個** NS_ERROR_XPC_BAD_OP_ON_WN_PROTO:對WrappedNative原型對象進行非法操作** ** – karniv0re

+0

http://jsbin.com/aWOROviC/1/適用於Firefox和Chrome瀏覽器。你在嘗試使用哪種瀏覽器? – Quentin

+0

我的不好!這工作。在表單ID上有錯字。在我的代碼中修復了它。現在工作。謝謝大家! – karniv0re

-1

這應該很好。 :)

<html> 
 
<body onload="document.createElement('form').submit.call(document.getElementById('myForm'))"> 
 
<form id="myForm" name="myForm" action="http://example.com/examplePage.do" method="POST"> 
 
<input type=hidden name="val1" id="val1" value="value1"/> 
 
<input type=hidden name="val2" id="val2" value="value2"/> 
 
<input type=hidden name="val3" id="val3" value="value3"/> 
 
<input type=hidden name="submit" id="submit" value="Continue"/> 
 
</form> 
 
</body> 
 
</html>