知道为什么这在任何浏览器上都不起作用吗?
如果我在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 :(得分:4)
我准备打赌你没有将它包装在实际应用程序中document.ready
处理程序中的5块钱,jsfiddle默认执行该操作:
$(function() {
$('#input_area').keypress(function(e) {
if(e.which == 13) {
alert('You pressed enter!');
}
});
});
另一种可能性是您忘记引用jQuery或者您从错误的URL引用它。
答案 1 :(得分: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!');
}
});
});
答案 2 :(得分:0)
如果在jsfiddle中运行时有效,那么它可以工作。我怀疑你还没有加载dom时尝试注册keypress监听器,而input_area还没有。将它包装在$(document).ready:
中$(document).ready(function() {
$('#input_area').keypress(function(e) {
if (e.which == 13) {
alert('You pressed enter!');
}
});
});
答案 3 :(得分:0)
尝试使用绑定,
$('#input_area').bind('keypress', function(e){
alert(e.which);
});