A tiny jQuery plugin for enhancing web forms by allowing users to easily clear values in text input boxes
Zebra ClearInput is a lightweight jQuery plugin designed to enhance the usability of web forms by adding a user-friendly feature that allows users to effortlessly clear the content of input fields. This is achieved by attaching a small icon to input fields. When users click on this icon, it promptly erases any text that has been entered.
As soon as a user begins typing in the input field, the option to clear the input value becomes visible. Once the input field loses focus, the option to clear the value reappears when the mouse hovers over the input field.
- it works out of the box and has (almost) no configuration options
- it is really tiny - it weighs 1.4KB uncompressed and ~600 bytes gzipped
- works in any modern browser - Firefox, Chrome, Safari, Edge, Opera
Your support means a lot and it keeps me motivated to keep working on open source projects.
If you like this project please ⭐ it by clicking on the star button at the top of the page.
If you are feeling generous, you can buy me a coffee by donating through PayPal, or you can become a sponsor.
Either way - Thank you! 🎉
See the demos
Zebra ClearInput has no dependencies other than jQuery 1.7.0+
Zebra ClearInput is available as a npm package. To install it use:
# the "--save" argument adds the plugin as a dependency in packages.json
npm install zebra_clearinput --save
First, load jQuery from a CDN and provide a fallback to a local source like:
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<script>window.jQuery || document.write('<script src="path/to/jquery-3.5.0.js"><\/script>')</script>
Load the Zebra ClearInput jQuery plugin:
<script src="path/to/zebra_clearinput.min.js"></script>
Alternatively, you can load Zebra ClerInput from JSDelivr CDN like this:
<!-- for the most recent version, not recommended in production -->
<script
src="https://cdn.jsdelivr.net/npm/zebra_clearinput@latest/dist/zebra_clearinput.min.js"></script>
<!-- for a specific version -->
<script
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/zebra_clearinput.min.js"></script>
<!-- replacing "min" with "src" will serve you the non-compressed version -->
Load the style sheet file from a local source
<link rel="stylesheet" href="path/to/zebra_clearinput.min.css">
...or from JSDelivr CDN
<!-- for the most recent version -->
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/zebra_clearinput@latest/dist/zebra_clearinput.min.css">
<!-- for a specific version -->
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/zebra_clearinput.min.css">
<!-- replacing "min" with "src" will serve you the non-compressed version -->
Now, within the DOM-ready event do
$(document).ready(function() {
// apply to all text input elements
new $.Zebra_ClearInput('input[type=text]');
// apply to certain text input elements
new $.Zebra_ClearInput('input.myClass');
// apply to all text input elements and
// add the default CSS class name for the buttons and a custom one
new $.Zebra_ClearInput('input[type="text"]', {
button_class_name: 'Zebra_ClearInput myCustomStyles'
});
});
Property | Type | Default | Description |
---|---|---|---|
container_class_name |
string | Zebra_ClearInput_Container |
The CSS class(es) to be applied to the container DIV that will wrap the target text input element |
button_class_name |
string | Zebra_ClearInput |
The CSS class(es) to be applied to the button associated with the text input element |
Removes a previously created instance of the plugin.
// apply to all text input elements
var clearInput = new $.Zebra_ClearInput('input[type="text"]');
// remove plugin
clearInput.destroy();
Cross browser/device testing is done with