Как мне отправить форму в Javascript с задержкой - PullRequest
4 голосов
/ 10 ноября 2010

Я пытаюсь отправить форму автоматически с задержкой в ​​расширении Chrome, которое я пишу, и оно, похоже, не отправляется.Ниже моя форма и 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>

Ответы [ 4 ]

2 голосов
/ 10 ноября 2010

Не знаю контекст, но, возможно, страница еще не была загружена полностью - вы можете попробовать вставить

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

в тело события onLoad ().В качестве другой вещи, попробуйте установить простое предупреждение перед setTimeout и в начале submitForm (), чтобы убедиться, что тайм-аут срабатывает в первую очередь.

1 голос
/ 06 ноября 2015

Попробуйте это:

<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>
1 голос
/ 10 ноября 2010

Вот что вам нужно сделать (скопировать и вставить):

<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 голосов
/ 25 февраля 2013

Вот еще одно простое решение:

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

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