Browserübergreifende Bedienung der Eingabetaste mit Javascript

Ich habe das folgende Beispiel, das das Drücken der Eingabetaste leicht erkennt und es richtig handhabt. Hier ist es:

<!DOCTYPE html>
<html>
<head>
    <title>keyCode example</title>
    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script type="text/javascript">

        $(document).ready(function () {

            $("#search-input").keyup(function (event) {
                event = event || window.event;
                if (event.keyCode == 13 || event.which == 13) {
                    $("#search-button").click();
                }
            });

            $("#search-button").click(function () {
                var theUrl = "http://www.yahoo.com/"
                window.location = theUrl;
            });
        });
    </script>
</head>

<body>
    <input id="search-input" name="search" type="text"/>
    <button id="search-button" type="button" alt="Search">Search</button>
</body>
</html>

Das funktioniert bei mir wirklich in jedem gängigen Browser. Das Problem ist, dass dieser Code in meiner Produktionsumgebung in keinem Browser außer Firefox funktioniert. In meiner Produktionsumgebung ist das Skript auch in die$(document).ready Funktion und befindet sich in der separaten Datei "main.js". Der Debug-Modus hat gezeigt, dass das Skript korrekt ausgeführt wird, wenn ich Buchstaben oder Zahlen in das Textfeld eingebe. Wenn ich die "Enter" -Taste drücke, geht das Programm nicht einmal in$("#search-input").keyup(function (event){ Sektion. Aber der Text verschwindet aus dem Textfeld, es scheint, dass die Seite neu geladen wird. Ich wiederhole noch einmal, dass das Problem nur vor Ort reproduziert werden kann. Auf einer separaten lokalen Seite, die ich oben gezeigt habe, funktioniert alles einwandfrei.

Weiß jemand was das Problem ist?

Aktualisieren: Mit Ausnahme der Eingabetaste werden alle Tasten normal verarbeitet. Wenn ich die Eingabetaste drücke,$("#search-input").keyup(function (event){ läuft nicht, als wären keine Ereignisse passiert.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage