2

私のサイトでは、「mysite.com/search/search_term」にアクセスして検索機能にアクセスできます。「search_term」はユーザーが入力した用語です。URLをそのようにフォーマットするための単純な1入力フォームを取得しようとしています。私がそれを行うことができる1つの方法は、適切な場所にリダイレクトする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();returnfalse"です。

于 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 に答える