cvn / angular-shims-placeholder

Angular directive to emulate the placeholder attribute on text and password input fields for old browsers, such as IE9, IE8, and IE7. Also works on textareas and html5 input types.
MIT License
63 stars 26 forks source link

angular-shims-placeholder

Bower version npm version Build Status devDependency Status

Angular directive to emulate the placeholder attribute on text and password input fields for old browsers, such as IE9, IE8, and IE7. Also works on textareas and html5 input types.

This directive works in both directions, which means that changing the value from inside the model is honoured in the form.

In comparison to https://github.com/urish/angular-placeholder-shim, this Angular directive is implementend purely on the AngularJS API and does not depend on other libraries, such as jQuery and jquery-html5-placeholder-shim.

Demo

View Demo

Usage

Include

<script src="https://github.com/cvn/angular-shims-placeholder/raw/master/angular-shims-placeholder.min.js"></script>

into your application.

Add the module as a dependency to your application module:

angular.module('MyAwesomeApp', [/* other dependencies */, 'ng.shims.placeholder']);

That's it. Now, text fields having an attribute placeholder behave almost as native placeholder fields, even on IE8 and below.

Example:

<input type="text" name="email" placeholder="Enter your email" />

Notes

The class empty is added when the input is empty and the placeholder is showing. Make it look like a placeholder e.g. .empty { color: #a9a9a9; }

If you modify a shimmed input from outside of Angular, trigger the 'change' event to update the placeholder display e.g. elem.triggerHandler('change')

Compatibility

Known Issues

Development

Authors

Original author: Jacob Rief
Maintained by: Chad von Nau

License

Released under the terms of MIT License.