2011-07-07 63 views
0

任何想法,爲什麼這不適用於任何瀏覽器?Jquery KeyPress不起作用

如果我在jsfiddle中試用它,它會工作。

$('#input_area').keypress(function(e) { 
    if(e.which == 13) { 
     alert('You pressed enter!'); 
    } 
}); 

HTML

<script type="text/javascript" src="counts.js"></script> 
<script type="text/javascript" src="jquery-1.6.2.min.js"></script> 
</head> 

<body> 
<input type="text" id="input_area"/> 

</body> 

JS

$(document).ready(function() { 
$('#input_area').keypress(function(e) { 
    if(e.which == 13) { 
     alert('You pressed enter!'); 
    } 
}); 
}); 
+0

你能向我們提供您所使用的小提琴? –

+1

任何錯誤信息?示例html?你綁定了'$(document).ready()'上的按鍵嗎? – lnrbob

+0

http://jsfiddle.net/t8by8/ – katspaugh

回答

4

我願意打賭5塊錢,你沒有把它包裝在document.ready處理器在實際的應用程序,它的jsfiddle的默認操作:

$(function() { 
    $('#input_area').keypress(function(e) { 
     if(e.which == 13) { 
      alert('You pressed enter!'); 
     } 
    }); 
}); 

另一種可能性是你忘記引用jQuery,或者你從錯誤的URL引用它。

+0

它只是不想工作。一切都準確地實現了就緒和源鏈接。 – user461316

0

根據瀏覽器的不同,which屬性可能未實現。您也應該檢查keyCode

$(document).ready(function() { 
    $("#input_area").keypress(function (e) { 
     if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { 
     alert('You pressed enter!'); 
     } 
    }); 
}); 
+0

jQuery負責處理這些跨瀏覽器問題。 'e.which'很好。 –

0

如果它的jsfiddle運行時的作品,那麼它的工作原理。我懷疑你在dom尚未加載時嘗試註冊按鍵監聽器,並且input_area尚不可用。總結這裏面的$(document)。就緒:

$(document).ready(function() { 
    $('#input_area').keypress(function(e) { 
     if (e.which == 13) { 
      alert('You pressed enter!'); 
     } 
    }); 
}); 
0

嘗試使用綁定,

$('#input_area').bind('keypress', function(e){ 
    alert(e.which); 
});