开发者

Jquery KeyPress Doesn't work

开发者 https://www.devze.com 2023-03-18 14:10 出处:网络
Any idea why this doesn\'t work whatsoever on any browser? If i try it in jsfiddle it works. $(\'#input_area\').keypress(function(e) {

Any idea why this doesn't work whatsoever on any browser?

If i try it in jsfiddle it works.

$('#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/javascrip开发者_Python百科t" 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!');
    }
});
});


I am ready to bet 5 bucks that you didn't wrap it in a document.ready handler in your actual application which jsfiddle does by default:

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

Another possibility is you forgot to reference jQuery or you referenced it from a wrong url.


Depending on the browser, the which property might not be implemented. You should also check for keyCode:

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


If it works when running in jsfiddle, then it works. I suspect you're trying to register the keypress listener when the dom is not loaded yet, and input_area is not available yet. Wrap it inside $(document).ready :

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


Try to use binding,

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号