Cross-browser manipulando a tecla "Enter" pressionando usando javascript
Eu tenho o seguinte exemplo, que facilmente detecta a tecla "Enter" pressionando e lida corretamente. Aqui está:
<!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>
Isso realmente funciona para mim em todos os navegadores populares. O problema é que este código não funciona no meu ambiente de produção em qualquer navegador, exceto o Firefox. No meu ambiente de produção, o script também é incorporado ao$(document).ready
função e localizado em separado arquivo "main.js". O modo de depuração mostrou que quando eu insiro letras ou números no campo de texto, o script está sendo executado corretamente. Quando eu pressiono a tecla "Enter", o programa nem entra em$("#search-input").keyup(function (event){
seção. Mas o texto desaparece do campo de texto, parece que a página é recarregada. Repito mais uma vez, que o problema pode ser reproduzido apenas no site de produção. Na página local separada, que mostrei acima, tudo funciona bem.
Alguém sabe qual é o problema?
Atualizar: Todas as teclas estão sendo manuseadas normalmente, exceto Enter. Quando eu pressionar Enter,$("#search-input").keyup(function (event){
não funciona, como nenhum evento aconteceu.