Кросс-браузерная обработка нажатия клавиши «Ввод» с использованием JavaScript
У меня есть следующий пример, который легко обнаруживает нажатие клавиши «Ввод» и обрабатывает его правильно. Вот:
<!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>
Это действительно работает для меня в любом популярном браузере. Проблема в том, что этот код не работает в моей производственной среде ни в одном браузере, кроме Firefox. В моей производственной среде скрипт также встроен в$(document).ready
Функция и находится в отдельном файле "main.js". Режим отладки показал, что при вводе букв или цифр в текстовое поле скрипт работает правильно. Когда я нажимаю клавишу «Ввод», программа даже не заходит в$("#search-input").keyup(function (event){
раздел. Но текст исчезает из текстового поля, кажется, что страница перезагружается. Еще раз повторяю, что проблему можно воспроизвести только на производственной площадке. На отдельной локальной странице, которую я показал выше, все работает отлично.
Кто-нибудь знает в чем проблема?
Обновить: Все ключи обрабатываются нормально, кроме Enter. Когда я нажимаю Enter,$("#search-input").keyup(function (event){
не работает, как будто никаких событий не произошло.