javascriptformsdom-eventsform-submit

How do I capture response of form.submit


I have the following code:

<script type="text/javascript">
  function SubmitForm()
  {
    form1.submit();
  }
  
  function ShowResponse(){}
</script>
<div>
  <a href="#" onclick="SubmitForm();">Click</a>
</div>

I want to capture the html response of form1.submit? How do I do this? Can I register any callback function to form1.submit method?


Solution

  • You won't be able to do this easily with plain javascript. When you post a form, the form inputs are sent to the server and your page is refreshed - the data is handled on the server side. That is, the submit() function doesn't actually return anything, it just sends the form data to the server.

    If you really wanted to get the response in Javascript (without the page refreshing), then you'll need to use AJAX, and when you start talking about using AJAX, you'll need to use a library. jQuery is by far the most popular, and my personal favourite. There's a great plugin for jQuery called Form which will do exactly what it sounds like you want.

    Here's how you'd use jQuery and that plugin:

    $('#myForm')
        .ajaxForm({
            url : 'myscript.php', // or whatever
            dataType : 'json',
            success : function (response) {
                alert("The server says: " + response);
            }
        })
    ;