0

私の Web サイトEnterでは、検索入力フィールドに文字列を入力して を押すことで、ユーザーが検索を使用できるようになっています。これを説明する jQuery コードを次に示します。

$(document).ready(function () {
    $('#search-input').on('keydown keyup keypress', function (event) {
        event = event || windows.event;
        if (event.keyCode == 13 || event.which == 13) {
            $("#search-button").click();
        }
    });

    $("#search-button").click(function () {
        var theUrl = "/search.aspx?search=" + document.getElementById('search-input').value;
        window.location = theUrl;
    });
}

私のマスターページには、次のコードがあります。

<input id="search-input" name="search" type="text" placeholder="Search..." />
<button id="search-button" type="button"></button>

これは FireFox と IE9/IE8 では機能しますが、Chrome では機能しません (驚くべきデバッグ モードの場合を除く)。これらすべてのブラウザで正しく動作するように助けてください。

4

2 に答える 2

1

keypressと が常に同じ値を返すとkeyupは限らないため、複数のイベントをバインドして物事を複雑にするのはやめてください。関数は、トリガーされたイベントごとに 1 回、複数回呼び出されます。また、e.whichjQueryで正規化されていますが、これも複雑すぎます:

$(document).ready(function () {
    $("#search-button").on('click', function() {
         var theUrl = "/search.aspx?search=" + $('#search-input').val();
         window.location = theUrl;
    });
    $('#search-input').on('keyup', function(e) {
         if (e.which == 13) 
            $("#search-button").trigger('click');
    });
});
于 2013-02-22T15:37:12.150 に答える
0

これには JavaScript は必要ありません。

<form method="GET" action="/search.aspx">
    <input name="search" type="text" placeholder="Search..." />
    <button type="submit">Submit</button>
</form>

JavaScriptを無効にしてフォームを機能させたくない場合を除きます。

于 2013-02-22T16:21:05.740 に答える