Jquery binding event on selected class

Andrew picture Andrew · Apr 4, 2010 · Viewed 18k times · Source

Is it achievable in jquery to bind an event to a group of control that has certain class? It seems to me, it can't. I google a bit and all that came up are nothing to do with events. Here's how my code looks -

$('.numonly').bind('keypress',function(event){
    if (event.which > 31 && (event.which < 48 || event.which > 57)) return false;
});

Answer

Nick Craver picture Nick Craver · Apr 4, 2010

Your code should work, here's an example of it in action: http://jsfiddle.net/g3GsE/

Make sure that your code is wrapped like this so it doesn't execute until document.ready:

$(function() {
  $('.numonly').bind('keypress',function(event){
    if (event.which > 31 && (event.which < 48 || event.which > 57)) return false;
  });
});

Without this, it would execute immediately and the class="numonly" elements won't be there to find yet...the code needs to wait until document.ready so it fires after the elements are there, so the selector finds them.