28
<form name="myForm" id="myForm" action="test.php" method="POST">
  <p>
  <input name="test" value="test" />
  </p>
  <p>
    <input type="submit" name="submit" value="Submit" />
  </p>
</form>

    <script>

    var auto_refresh = setInterval(
    function()
    {
    submitform();
    }, 10000);

    function submitform()
    {
      alert('test');
      document.myForm.submit();
    }
    </script>

I'm having trouble trying to auto-submit a form every 10 seconds once landed on a page. The form name is myForm action="test.php". I get the 'test' message but the page doesn't submit the form.

Any solutions besides autoloading the function upon page load?

FIXED: Removed (name="submit") from the submit button and it worked smoothly.

3
  • What is document.myForm at the time the function is called? Commented Sep 11, 2012 at 19:05
  • <form name="myForm" id="myForm" action="test.php" method="POST"> <p> <input name="test" value="test" /> </p> <p> <input type="submit" name="submit" value="Submit" /> </p> </form> Commented Sep 11, 2012 at 19:10
  • Do you have an action defined on your form? Please include the relevant HTML. Commented Sep 11, 2012 at 19:10

5 Answers 5

33

You need to specify a frame, a target otherwise your script will vanish on first submit!

Change document.myForm with document.forms["myForm"]:

<form name="myForm" id="myForm" target="_myFrame" action="test.php" method="POST">
    <p>
        <input name="test" value="test" />
    </p>
    <p>
        <input type="submit" value="Submit" />
    </p>
</form>

<script type="text/javascript">
    window.onload=function(){
        var auto = setTimeout(function(){ autoRefresh(); }, 100);

        function submitform(){
          alert('test');
          document.forms["myForm"].submit();
        }

        function autoRefresh(){
           clearTimeout(auto);
           auto = setTimeout(function(){ submitform(); autoRefresh(); }, 10000);
        }
    }
</script>
Sign up to request clarification or add additional context in comments.

5 Comments

Modified the script, tested, it works, works better with setTimeout
You need to specify a frame, a target otherwise your script will vanish on first submit!
I don't get it. What am I doing wrong? Uploaded the file at wildmedia.ro/auto_submit.php, still only 'test' pops up. Form not submitted.
remove name="submit" from submit button because document.forms["myForm"].submit sees it as an element
The form's id attribute is not necessary in this example, since the form is accessed by the name attribute. (Unless of course you prefer to use document.getElementById(), in which case one should specify an id attribute instead of name.)
11

Try using document.getElementById("myForm") instead of document.myForm.

<script>
var auto_refresh = setInterval(function() { submitform(); }, 10000);

function submitform()
{
  alert('test');
  document.getElementById("myForm").submit();
}
</script>

1 Comment

How doesn't it work? Do you see an error in the javascript console?
7

This solution worked for me:

<body onload="setTimeout(function() { document.myform.submit() }, 5000)">
   <form action=TripRecorder name="myform">
      <textarea id="result1"  name="res1" value="str1" cols="20" rows="1" ></textarea> <br> <br/>
      <textarea id="result2" name="res2" value="str2" cols="20" rows="1" ></textarea>
   </form>
</body>

Comments

4

A simple solution for a delayed auto submit:

<body onload="setTimeout(function() { document.frm1.submit() }, 5000)">
   <form action="https://www.google.com" name="frm1">
      <input type="hidden" name="q" value="Hello world" />
   </form>
</body>

Comments

-7

Try this,

HtmlElement head = _windowManager.ActiveBrowser.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = _windowManager.ActiveBrowser.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "window.onload = function() { document.forms[0].submit(); }";
head.AppendChild(scriptEl);
strAdditionalHeader = "";
_windowManager.ActiveBrowser.Document.InvokeScript("webBrowserControl");

1 Comment

Why should anyone use this code without any explanation? Please describe what this code do in your answer.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.