2014-09-02 85 views
1

我的Javascript不重定向。这里是我的尝试:JavaScript不重定向

<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> 

我想用户重定向到指定的URL没有在浏览器的URL的问题。这应该在不同的机器上通用。我是JS新手,请告知。

回答

1

首先,移动onclick事件处理程序申报到<form>标签。接下来,将其更改为onsubmit事件处理程序声明。最后,在它前面加上一个return(防止默认事件处理,即实际提交表单):

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

小提琴这里:

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

然后又在processFormData末增加return false;http://jsfiddle.net/xwcvq7bf/

+0

我发现这个解决方案最好。谢谢你的帮助! – TheKolaNN 2014-09-02 14:33:27

1

使用location.host。试试这个:

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

而且,

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

所以,现在你的网址将是这样的:http://www.example.com/searchTerm

+0

这不会解决的主要问题,即使用了错误的事件处理器。 – 2014-09-02 09:03:51

+0

@HaukeP。我更新了答案。现在检查一下,如果你仍然面对同样的情况,请告诉我。 – 2014-09-02 09:07:38