2

在我的网站上,我可以通过访问“mysite.com/search/search_term”访问搜索功能,其中“search_term”是用户输入的术语。我正在尝试获取一个简单的单输入表单来以这种方式格式化 URL。我可以做到的一种方法是制作一个可以重定向到正确位置的 PHP 脚本。因此,如果您导航到“search_redirect.php?term=search_term”,它只会将您重定向到“/search/search_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>

...其中,onsubmit 调用此函数:

function search_navigate(){
    alert("well hey there");
    window.location = ("http://www.google.com");
}

当我单击提交按钮时,我可以看到警报,但不是像您期望的那样将我带到 Google,而是将我带到我所在的同一页面(无论该页面可能是什么)。

这是我在以这种方式实施时面临的问题。如果您完全有另一种方式,我仍然想听听。

4

2 回答 2

4
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"。

于 2012-06-08T02:49:05.150 回答
2

通常当你遇到这种奇怪的行为时,它与<form>. 尝试这个:

<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>
于 2012-06-08T03:01:49.690 回答