[Maxlength] jQuery Character Counter and Limit Plugin For Bootstrap

The Bootstrap MaxLength Build Status plugin integrates by default with Twitter bootstrap using badges to display the maximum field length where the user enters text. This plugin uses the HTML5 “maxlength” attribute to work. The cursor icon appears when the focus is on an item and disappears when the focus is lost.

Bootstrap Max length is a nice jQuery plugin that displays the character counter attached to the input field and limits the maximum length of user input, using the Twitter Bootstrap attribute and html5 max length.

How to make use of it:

1. Include jQuery library and jQuery Bootstrap Maxlength on the web page.

<script src="jquery.min.js"></script>
<script src="bootstrap-maxlength.js"></script>

2. Include Bootstrap library and CSS file on the web page.

<link rel="stylesheet" href="/bootstrap.min.css" />
<script src="bootstrap.min.js"></script>

3. Specify the utmost variety of characters allowed in your text subject.

<input type="text" maxlength="30" id="example" />

4. Call the plugin on the text subject and complete it.

  // options here

5. All the choices to customize the plugin.

  showOnReady: false,
  alwaysShow: true,
  threshold: 0,
  warningClass: "small form-text text-muted",
  limitReachedClass: "small form-text text-danger",
  separator: " / ",
  preText: "",
  postText: "",
  showMaxLength: true,
  placement: "bottom-right-inside",
  message: null,
  showCharsTyped: true,
  validate: false,
  utf8: false,
  appendToParent: false,
  twoCharLinebreak: true,
  customMaxAttribute: null,
  allowOverMax: false,
  zIndex: 1099

Configurable options

  • alwaysShow: if true the threshold will be ignored and the remaining length indication will be always showing up while typing or on focus on the input. Default: false.
  • threshold: this is a number indicating how many chars are left to start displaying the indications. Default: 0.
  • warningClass: it’s the class of the element with the indicator. The default is small form-text text-muted but can be changed to anything you’d like.
  • limitReachedClass: it’s the class the element gets when the limit is reached. Default is small form-text text-danger and can be changed.
  • limitExceededClass: it’s the class that the element gets when the limit is exceeded. The default is '' In this case, the limitReachedClass setting is used.
  • separator: represents the separator between the number of typed chars and a total number of available chars. Default is /.
  • preText: is a string of text that can be outputted in front of the indicator. the preText is empty by default.
  • postText: is a string outputted after the indicator. postText is empty by default.
  • showMaxLength: if false, will display just the number of typed characters, e.g. will not display the max length. Default: true.
  • showCharsTyped: if false, will display just the remaining length, e.g. will display the remaining length instead of a number of typed characters. Default: true.
  • appendToParent: appends the maxlength indicator badge to the parent of the input rather than to the body. Default: false.
  • message: an alternative way to provide the message text, i.e. ‘You have typed %charsTyped% chars, %charsRemaining% of %charsTotal% remaining’. %charsTyped%, %charsRemaining%, and %charsTotal% will be replaced by the actual values. This overrides the options separator, preText, postText and showMaxLength. Alternatively, you may supply a function that the current text and max length and returns the string to be displayed. For example, function(currentText, maxLength) { return ” + Math.ceil(currentText.length / 160) + ‘ SMS Message(s)’; }
  • utf8: if true the input will count using utf8 bytesize/encoding. For example, the ‘£’ character is counted as two characters. Default: false.
  • showOnReady: shows the badge as soon as it is added to the page, similar to alwaysShow. Default: false.
  • twoCharLinebreak: count linebreak as 2 characters to match IE/Chrome textarea validation. Default: true.
  • customMaxAttribute: String — allows a custom attribute to display indicator without triggering native max length behavior. Ignored if value greater than a native maxlength attribute. customMaxClass settings get added when exceeded to allow the user to implement form validation. Default is null.
  • customMaxClass: Set the class to be added with ‘customMaxAttribute’. The default is ‘overmax’.
  • validate: If the browser doesn’t support the maxlength attribute, an attempt to type more than the indicated chars, will be prevented. Default: false.
  • allowOverMax: This will allow the input to be over the customMaxLength. Useful in soft max situations. Default false.
  • zIndex: Will set the counter z-elevation. Useful to fix elevation in modals or dialogs. Default 1099.
  • placement: Is a string, object, or function, to define where to output the counter.
    • Possible string values are: bottomlefttoprightbottom-righttop-righttop-leftbottom-left and centered-right. Are also available : bottom-right-inside (default option, as in Google’s Material Design), top-right-insidetop-left-inside and bottom-left-inside.
    • Custom placements can be passed as an object, with keys toprightbottomleft, and position. These are passed to $.fn.css.
    • A custom function may also be passed. This method is invoked with the {$element} Current Input, the {$element} MaxLength Indicator, and the Current Input’s Position {bottom height left right top width}.


  • maxlength.reposition on an input element triggers re-placing of its indicator. Useful if textareas are resized by an external trigger.
  • maxlength.shown is triggered when the indicator is displayed.
  • maxlength.hidden is triggered when the indicator is removed from view.

jQuery Character Counter and Limit Plugin, Bootstrap MaxLength Github, limit character input in the textarea including count, textarea remaining character count javascript

See Demo And Download

Official Website(mimo84): Click Here

This superior jQuery/javascript plugin is developed by mimo84. For extra Advanced usage, please go to the official website.

Related Posts


Bootstrap 4 Sidebar Menu Responsive Template | MDB

Bootstrap Side Navbar – Responsive sidebar template based on the Bootstrap 4 framework. An easy-to-use, totally responsive, Google Material Design impressed aspect navigation for modern web app…


Lightweight Bootstrap 4 Toast Notification Plugin | BS4 Advanced Toast

A lightweight Bootstrap 4 Toast Notification plugin integrated with JS/jQuery. bs4-toast.js is a JavaScript library that enhances the native Bootstrap toast component with icons, buttons, callbacks, and…


Bootstrap 5 Treeview Dynamically Collapsible | bs5treeview

Bootstrap 5 Tree View is a very simple plug-in for creating a basic and elegant Treeview using BS5. For use with Bootstrap 5, the attributes have been…


Modern Mobile Touch Slider With Acceleration Transitions | Swiper

Swiper is the most modern free mobile touch slider with accelerated device transitions and amazing original behavior. It is intended for use in mobile websites, mobile web…


[Steps] A Simple, Lightweight jQuery Step Wizard Plugin

jQuery steps wizard is a simple and lightweight plugin. The step is a jQuery plugin that turns any grouped elements into a step-by-step wizard with navigation buttons…


Responsive Image Gallery Lightbox jQuery Plugin | VenoBox

VenoBox is a responsive jQuery modal window plugin suitable for images, embedded content, iFrames, Google Maps, Vimeo, and YouTube videos. The big difference compared to many other…

Leave a Reply

Your email address will not be published. Required fields are marked *