Search code examples
javascriptjqueryinputlimitkeyfilter

Limit input box to 0-100


I have an input box that takes values from 0-100. I want to prevent users from writing anything larger or smaller.

I've been using the jquery keyfilter plugin to limit the input of a field: http://code.google.com/p/jquery-keyfilter/

This plugin can limit the input to numerals, but not within a range. How do I prevent users from entering numbers that would exceed the range. Thanks.


Solution

  • Use plain Javascript like this:

    <script>
      function handleChange(input) {
        if (input.value < 0) input.value = 0;
        if (input.value > 100) input.value = 100;
      }
    </script>
    

    Then declare the input box like this:

    <input type="text" onchange="handleChange(this);" />
    

    Because you have hooked this function to onchange(), it will work even if a user copy / pastes something into the input box.