Adam Right
Adam Right

Reputation: 985

Submitting a HTML form in and onload function

I want send a form as soon as the page is loaded. All variables in the form are written dynamically and there is no button for submitting.

Does following JS script work in all browsers ?

<script type='text/javascript'> window.onload = function(){ window.document.forms[0].submit(); }; </script>

I doubt window.onload will work in all without any problems.

Thanks in advance...

Upvotes: 2

Views: 43722

Answers (3)

Dan Atkinson
Dan Atkinson

Reputation: 11719

Whilst I would agree that Ken's answer is perfectly acceptable, I don't believe it is correct to include a full-fat JS library just for its .ready() functionality.

For what it's worth, I'd recommend docReady. The size of docReady is 322 bytes gzipped (548 bytes uncompressed).

docReady(function() {
  window.document.forms[0].submit();
});

I love jQuery, and I'd even say that there's not much of a perf impact in Ken's answer because it's likely that, if you're using the Google CDN, you've probably already downloaded it during your time on that site or others. But still, it's an unnecessary overhead on what should be a simple page IMO.

Upvotes: 6

Battle_707
Battle_707

Reputation: 708

Don't use the window.onload (I mean, you can, but is easier/ more logical to do it differently). What you should do is print the form in a hidden div tag, assign an id to the submit button and then use javascript to 'click' it. Here is an example:

<div style="display: hidden;">
    <form action="page/site" method="get/post">
        <input type="hidden" name="name" value="value" />
        <input type="submit" id="formButton" />
    </form>
    <script language="javascript">
        document.getElementById("formButton").click();
    </script>
</div>

I hope that helps.

Upvotes: 3

Ken Pespisa
Ken Pespisa

Reputation: 22264

If you're worried about compatibility in all browsers, how about using jQuery's ready function?

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    window.document.forms[0].submit();
  });
</script>

Upvotes: 14

Related Questions