Hello guys!
I have a form and when the user sumbit it a javascript function will be called using onsubmit event. I need to call the function because I need some AJAX code to be executed. And after it's finished, the page needs to be redirected to another page. But I don't know how to do it.
If the new page was something constant I could have put its address in "action" of the form, but the new page is changeable and depends on the input the user has entered.
I tried to use "location.href=..." at the end of javascript function but it didn't work.
Is there any way to do it?

Thanks.

Recommended Answers

All 3 Replies

Soben,

There's essentially two ways to do this, depending on whether or not you need the form to be submitted.

  1. To submit the form to a dynamically determined url: In the onsubmit handler, include a line of the format form.action = url; , and return true to allow form submission.
  2. To perform a redirect to a dynamically determined url without submitting the form: In the onsubmit handler, include a line of the format location = url; and return false to suppress form submission.

Airshow

Thanks buddy.
First one worked, but second one didn't. Would you please write the code?

Soben,

The oft omitted bit is a return in the HTML.

<form name="myform" action="..." method=..." onsubmit="return myOnsubmitHandler();">

In general it's better to attach handlers in javascript rather than HTML, eg.

onload = function() {
  ...
  document.myform.onsubmit = function() {
    ...
    return false; //or true, to control whether or not the form is to be submitted.
  };
  ...
}

Or, the same thing in jQuery:

$(document).ready(function() {
  ...
  $('form[name="myform"]').submit(function() {
    ...
    return false; //or true, to control whether or not the form is to be submitted.
  });
  ...
});

Airshow

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.