2010-11-10 114 views
4

我正在嘗試自動提交表單,延遲時間爲我正在編寫的Chrome擴展,它似乎並未提交。下面是我的形式和javascript:如何以延遲提交Javascript表單

function submitForm() { // submits form 
    document.getElementById("ismForm").submit(); 
} 

if (document.getElementById("ismForm")) { 
    setTimeout("submitForm()", 5000); // set timout 
} 


<form method="post" id="ismForm" name="ismForm" action="http://www.test.com" class=""> 
<label for="searchBox">Search </label> 
<input type="text" id="searchBox" name="q" value=""> <input type="hidden" id="sayTminLength" value="3"><input type="hidden" id="coDomain" value="US"><input class="button" type="submit" id="search.x" name="search.x" value="Search" autocomplete="off"> 
</form> 
+0

出於某種原因,代碼不會進入submitForm()函數。我通過在submitForm()函數的開始處添加一個警報來測試它。 – milan 2010-11-10 19:48:34

回答

2

不知道的情況下,但它可能是該頁面還沒有被完全加載 - 你可以嘗試把

if (document.getElementById("ismForm")) { 
    setTimeout("submitForm()", 5000); // set timout 
} 

身體的onLoad( )事件。作爲另一件事,嘗試在setTimeout之前和submitForm()的開始處添加一個簡單的警報,以確認超時正在被解僱。

+0

出於某種原因,代碼不會進入submitForm()函數。我通過在submitForm()函數的開始處添加一個警報來測試它。 – milan 2010-11-10 19:37:39

1

這裏就是你需要做什麼(複製和粘貼):

<html> 
    <head> 
    <script type="text/javascript"> 
    function submitForm() { // submits form 
     document.getElementById("ismForm").submit(); 
    } 
    function btnSearchClick() 
    { 
     if (document.getElementById("ismForm")) { 
      setTimeout("submitForm()", 5000); // set timout 
     } 
    } 
    </script> 
    </head> 
    <body> 
    <form method="post" id="ismForm" name="ismForm" action="http://www.test.com" class=""> 
    <label for="searchBox">Search </label> 
    <input type="text" id="searchBox" name="q" value=""> <input type="hidden" id="sayTminLength" value="3"> 
    <input type="hidden" id="coDomain" value="US"> 
    <input class="button" onclick="btnSearchClick();" type="button" id="search.x" name="search.x" value="Search" autocomplete="off"> 
    </form> 
    </body> 
    </html> 

或者,如果你想在5秒後提交表單,重視windown.onload事件調用btnSearchClick()之類這樣:在window.onload = btnSearchClick

+0

我無法更改表單。我正在撰寫Chrome的擴展程序。 – milan 2010-11-10 19:38:51

0

下面是一個更簡單的解決方案:

<script type="text/javascript"> 
    function formSubmit(){ 
      document.getElementById("ismForm").submit(); 
    } 

    window.onload=function(){ 
      window.setTimeout(formSubmit, 5000); 
    }; 
</script> 
0

試試:

<form method="post" action="yourpage/" id="customForm"> 
    <input type="text" name="input1"/> 
    <input type="text" name="input2"/> 
</form> 
<button id="submit">SubmitForm</button><!-- Outside of form --> 
<script> 
    function submitForm() { 
     document.getElementById("customForm").submit() 
    } 

    document.getElementById('submit').onclick = function() { 
     setTimeout(submitForm, 3000); 
    } 
</script>