Javascript 如何获取HTML表单';将s值转换为“a”;海关;网址?

Javascript 如何获取HTML表单';将s值转换为“a”;海关;网址?,javascript,html,forms,Javascript,Html,Forms,在我的网站上,我可以通过“mysite.com/search/search\u term”访问搜索功能,其中“search\u term”是用户输入的术语。我正试图得到一个简单的单输入表单,以这种方式格式化URL。我可以做的一个方法是制作一个PHP脚本,它将重定向到正确的位置。因此,如果您导航到“search\u redirect.php?term=search\u term”,它只会将您重定向到“/search/search\u term”。我想避免这样做,因为这似乎有点多余。如果我找不到更好

在我的网站上,我可以通过“mysite.com/search/search\u term”访问搜索功能,其中“search\u term”是用户输入的术语。我正试图得到一个简单的单输入表单,以这种方式格式化URL。我可以做的一个方法是制作一个PHP脚本,它将重定向到正确的位置。因此,如果您导航到“search\u redirect.php?term=search\u term”,它只会将您重定向到“/search/search\u term”。我想避免这样做,因为这似乎有点多余。如果我找不到更好的答案,那可能就是我最后要做的。现在,以下是我到目前为止所做的尝试:

我尝试在表单上设置一个
onsubmit
,如下所示:

<form onsubmit="search_navigate()" id="navbar_form">
    <input type="search" placeholder="Search Articles..." id="navbar_search"></input>
    <input id="navbar_submit" type="submit" value=">"/>
</form>
当我点击submit按钮时,我可以看到警报,但它并没有像你所期望的那样将我带到Google,而是带我到我所在的同一页面(无论该页面可能是什么)

这就是我在以这种方式实现它时面临的问题。如果你有完全不同的方法,我还是想听

function search_navigate() {
    var obj = document.getElementById("navbar_search");
    var keyword = obj.value;
    var dst = "http://yoursite.com/search/" + keyword;
    window.location = dst;
}
这对你有用吗


此外,要停止表单提交执行其原始函数,请在函数调用后附加“return false”,即onsubmit=“foo();return false”

这对你有用吗



此外,要停止表单提交执行其原始函数,请将“return false”附加到函数调用,即onsubmit=“foo();return false”。

通常,当您遇到这种奇怪的行为时,它与
有关。试试这个:

<script type="text/javascript">
function search_navigate() {
    var obj = document.getElementById("navbar_search");
    var keyword = obj.value;
    var dst = "http://yoursite.com/search/" + keyword;
    window.location = dst;
}
</script>

<span id="navbar_form">
    <input type="search" placeholder="Search Articles..." id="navbar_search" />
    <input type="button" id="navbar_submit" value="Submit" onClick="search_navigate()" />
</span>

函数搜索_导航(){
var obj=document.getElementById(“navbar_搜索”);
var关键字=obj.value;
var dst=”http://yoursite.com/search/“+关键字;
window.location=dst;
}

通常,当您遇到这种奇怪的行为时,它与
有关。试试这个:

<script type="text/javascript">
function search_navigate() {
    var obj = document.getElementById("navbar_search");
    var keyword = obj.value;
    var dst = "http://yoursite.com/search/" + keyword;
    window.location = dst;
}
</script>

<span id="navbar_form">
    <input type="search" placeholder="Search Articles..." id="navbar_search" />
    <input type="button" id="navbar_submit" value="Submit" onClick="search_navigate()" />
</span>

函数搜索_导航(){
var obj=document.getElementById(“navbar_搜索”);
var关键字=obj.value;
var dst=”http://yoursite.com/search/“+关键字;
window.location=dst;
}

不,我已经试过了。问题不是建立URL,而是这个特定函数的重定向根本不起作用。好吧,我认为是表单提交导致了这种情况,我认为可以这样解决:@Marcus起作用了!请把它写在另一个答案中(或写进你的答案中),这样我就可以接受了。@Hassan,我已经更新了我的答案,可以吗?我是stackoverflow的新手:)不,我已经试过了。问题不是建立URL,而是这个特定函数的重定向根本不起作用。好吧,我认为是表单提交导致了这种情况,我认为可以这样解决:@Marcus起作用了!请把它写在另一个答案中(或写进你的答案中),这样我就可以接受了。@Hassan,我已经更新了我的答案,可以吗?我是新来的:)@Hooman小心点<代码>窗口不是复数。此外,关于这一点也有很多讨论,基本上可以归结为偏好。但是,在某些情况下,
window.location
似乎只允许您设置值。编辑:为了通用化,更适合使用
window.location.href
作为我们的基本url,因此它应该类似于
var dst=window.location.href+“/”+关键字@AlexW谢谢Alex,很抱歉输入错误。“我刚刚编辑了它。”胡曼小心点<代码>窗口
不是复数。此外,关于这一点也有很多讨论,基本上可以归结为偏好。但是,在某些情况下,
window.location
似乎只允许您设置值。编辑:为了通用化,更适合使用
window.location.href
作为我们的基本url,因此它应该类似于
var dst=window.location.href+“/”+关键字@AlexW谢谢Alex,很抱歉输入错误。我刚刚编辑过。