TheKolaNN
TheKolaNN

Reputation: 989

JavaScript is not redirecting

My Javascript is not redirecting. Here is what I tried:

<html>
<head>
    <title>Hello world</title>
</head>
<body>
<form method="POST">
    Search: <input id="searchterm" type="text" name="searchterm">
    <input type="submit" value="Submit" onclick="processFormData()">
</form>

<script>
    function processFormData()
    {
        var term = document.getElementById("searchterm").value;
        window.location = window.location.href + term;
    }
</script>
</body>
</html>

I want user to be redirected to a specified url no matter of the url in browser. This should be universal on different machines. I am new to JS, please advise.

Upvotes: 1

Views: 109

Answers (3)

Vignesh Paramasivam
Vignesh Paramasivam

Reputation: 2480

You can specify the url itself,

window.location = "url"+term;

If you wanna get only the hostname(http://www.example.com),

window.location = location.hostname +"/"+term;

or If you wanna get the href(http://www.example.com/home/about.htm),

window.location = location.href +"/"+term;

Upvotes: 0

Viswanath Donthi
Viswanath Donthi

Reputation: 1821

Use location.host. Try this:

function processFormData()
{
    var term = document.getElementById("searchterm").value;
    window.location = "http://"+location.host+"/"+term;
    return false;
}

And,

<form method="POST">
   Search: <input id="searchterm" type="text" name="searchterm">
   <input type="submit" value="Submit" onclick="return processFormData()">
</form>

So, now your url will be like this: http://www.example.com/searchTerm

Upvotes: 1

Hauke P.
Hauke P.

Reputation: 2843

First, move the onclick event handler declaration to the <form> tag. Next, change it into an onsubmit event handler declaration. Finally add a return in front of it (to prevent default event handling, i.e. actually submitting the form):

 <form method="POST" onsubmit="return processFormData();">
     Search: <input id="searchterm" type="text" name="searchterm" />
     <input type="submit" value="Submit"  />
 </form>

Then also add a return false; at the end of processFormData:

function processFormData()
{
    var term = document.getElementById("searchterm").value;
    window.location = window.location.href + term;
    return false;
}

Fiddle here: http://jsfiddle.net/xwcvq7bf/

Upvotes: 1

Related Questions