Skip to content
Improves jQuery UI Checkbox/Radio Buttons.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


All shims, workarounds and p(r)olyfills have one ultimate goal, which is being deprecated. I'm happy to announce that we have finally achieved this goal. We encourage you to update to jQuery UI >= 1.10.4 and discard this plugin.

However, if you're stuck with an older version of jQuery UI, or really like the disableSelection feature, feel free to keep using this plugin. :)


Improves jQuery UI Checkbox/Radio Buttons usability.



IE6+ and all modern desktop browsers - Firefox, Chrome, Opera, Safari.


Check out the Project Page!

How to use

Include jQuery, jQuery UI and then ultbuttons.js, e.g.:

<link rel="stylesheet" href="//" />
<script src="//"></script>
<script src="//"></script>
<script src="ultbuttons1.1.min.js"></script>

Then just make use of the now improved jQuery UI's .button()/.buttonset() widgets. =] Check out the jQuery UI button widget's official documentation if you're not sure how to use it.


  • UltButtons does not create any extra markup, instead, it works on top of the original jQuery UI button/buttonset methods.
  • The plugin also does not use any globals.
  • The plugin requires jQuery 1.7 at least, recommended is 1.8+.
  • Always attach your change handlers with jQuery, the plugin will not fire handlers natively attached nor attached through other libraries (e.g. Prototype). However, if you desperately need an workaround, see the discussion at Issue #2.



  • Core

    • UltButtons now extend the jQuery UI Button widget prototype's _create and _destroy methods, meaning you can now call .button()/.buttonset() on elements after including the ultbuttons script and all accessibility improvements will be applied automatically. This deprecates the $.fn.ultButton and $.fn.ultButtonset methods which now serve as aliases to their counterpart $.fn.button and $.fn.buttonset methods (for back-compat only);
    • Added the $.fn.reenableSelection() method which is used in the UI button prototype's _destroy method;
    • Removed the $.UltC namespace.

  • disableSelection

    • Fixed userSelect for Firefox and Chrome when using jQuery 1.7;
    • Fixed unselectable property for nested elements inside buttons in Opera.

  • Unobstrusiveness

    • No longer utilizes .data() to store checked state;
    • No longer attaches permanent handlers to document.


  • Micro-optimizations.


  • Initial release.


MIT License.

Something went wrong with that request. Please try again.