0

我想在页面上有一个表单,要求用户输入一个值。点击“提交”按钮后,我希望将该值放在 URL 中,并将用户带到该页面。例如 - 如果用户输入:

this-is-what-the-user-enters

然后在点击“提交”后,他们的浏览器就会转到这个页面:

http://my-website.com/this-is-what-the-users-enters

我确信这很简单,但我在其他地方找到的解决方案最终都包含一个“?” 在生成的 URL 字符串中。

这是我尝试过的:

<script> 
function process() {
    var url="http://name.com/" + document.getElementById("url").value; 
    location.href=url; return false; 
} 
</script>

然后在 HTML 中放置一个表单:

<form onSubmit="return process();">
    URL: <input type="text" name="url" id="url"> <input type="submit" value="go">
</form>

这从表单中获取值,但它添加了一个 ? 到生成的 URL。

4

2 回答 2

1

这很简单

<input id="url"/>
<input type="button" onclick="document.location='http://my-website.com/' + document.getElementById('url').value" value="Go!"/>
于 2013-09-11T16:36:28.493 回答
1

总的来说,有两种方法可以解决这个问题。

  1. 在您的服务器上写一些东西以将用户重定向到表单中输入的路径。

  2. 使用 JavaScript 设置window.location.pathname为用户输入的值,例如:

    <form action="#" method="GET" onsubmit="window.location.pathname = this.path.value; return false;">
        <label for="url">URL:</label> <input id="url" name="path" type="text"> <input type="submit">
    </form>
    

(在一个真实的站点中,您可能不会在onsubmit属性中包含 JavaScript,尽管对于像这样的小东西,它实际上可能是最好的方法。)

于 2013-09-11T16:39:06.880 回答