Noura Noura - 6 months ago 35
Javascript Question

window.location.href not working in form onsubmit

So i have a form, and

onsubmit="return reg_check(this)"
where
reg_check()
is a javascript function in the header which is supposed to check the form data, and since one of its tasks is to check if the username is in the database which requires php, i want to redirect to a php page that does this task.

Problem is:
window.location.href
is not working! Here's the function (reduced version) and of course the
main.php
is just a random page i got:

function reg_check(myForm) {
alert("before redirect..");
window.location.href = "http://localhost/main.php?width=" + screen.width + "&height=" + screen.height;
alert("after redirect..");
}


The
before redirect
and
after redirect
alerts work, it just doesn't redirect? It remains in the same page.

Also, if I tried to redirect from the body by just typing :

<script type="text/javascript">
alert("before redirect..");
window.location.href = "http://localhost/main.php?width=" + screen.width + "&height=" + screen.height;
alert("after redirect..");
</script>


it redirects.

Any ideas of how I could get this to work?

Answer

You need to return false; from your reg_check function and then in your onsubmit, change it to:

onsubmit="return reg_check(this);"

This will cancel the form submission. And if you want to let the form submit as normal, just return true from reg_check.

Edit (to be more clear you need to add return false; from your function):

function reg_check(myForm) {
    alert("before redirect..");
    window.location.href = "http://localhost/main.php?width=" + screen.width + "&height=" + screen.height;
    return false;
}