Security News
The Risks of Misguided Research in Supply Chain Security
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
angular-placeholder
Advanced tools
This directive will shim in placeholder support for browsers that do not support placeholders. The directive may also make styling easier by letting you combine your rules. It does not use a jQuery plugin and simulates the behavior by adding text for input and textarea elements when they do not have focus.
There's a live demo courtesy of Plunker. In case you want some more advanced styling, there's another demo that helps illustrate what you can do.
Placeholder styling was natively implemented in IE 10, Chrome 4, Firefox 4, Safari 5, Opera 11.6. Internet Explorer 8 and 9 do not support this natively, but many places are forced to still code for those browsers.
Using this plugin needs only three easy steps.
Include the plugin into your page.
<script src="tai-placeholder.js"></script>
Add this somewhere to the module dependencies for your Angular application.
angular.module('yourApplication', [ 'taiPlaceholder' ]);
Make sure your element has both "ng-model" and "placeholder" attributes.
<input type="text" ng-model="firstName" placeholder="First Name" />
<textarea ng-model="feedback" placeholder="Provide feedback!"></textarea>
Style the placeholder with some CSS for IE8 and IE9.
.placeholder {
color: #aaa;
}
There is an extra attribute that you can specify on your input tags to control the name of the class that is applied when the input should be showing placeholder text. The default value for placeholder-class
is "placeholder" but you can change it.
<input type="text" ng-model="firstName" placeholder="First Name"
placeholder-class="placeholder-blue">
<input type="text" ng-model="lastName" placeholder="Last Name"
placeholder-class="placeholder-red">
The above sample will apply different classes for the first name and the last name. Using this mechanism you can style the inputs differently. You can achieve the same effect by having your inputs use classes - the above is just one path to a goal.
To change the color of the text you still need to write some duplicate CSS. This is what's needed to change the color to red for all browsers.
.placeholder { color: red; }
::-webkit-input-placeholder { color: red; }
:-moz-placeholder { color: red; }
::moz-placeholder { color: red; }
:-ms-input-placeholder { color: red; }
The rules need to be split out because browsers must ignore rules that contain invalid CSS selectors, and the browsers don't understand other browser-specific pseudoclasses and pseudoelements.
Here's a breakdown of the selectors.
.placeholder
- All browsers get this class, but IE8 and IE9 can style the text when this class is applied to the elements.::-webkit-input-placeholder
- WebKit and Blink (Safari, Chrome, Opera 15+):-moz-placeholder
- Firefox 4 - 18::-moz-placeholder
- Firefox 19+:-ms-input-placeholder
- IE 10First, clone the repository. Then you need to run npm install
to get most of the dependencies and npm run bower
for the rest.
Tests are always included. You can run them with the following command. It runs the test suite with PhantomJS.
grunt test
If live feedback during development is what you would like, use this. It's also easier to run tests in many different browsers with this command - just open up the server with many different browsers and the tests will run in all of them.
grunt watch
This plugin is licensed under an MIT license with an additional non-advertising clause. Read full license.
FAQs
Placeholder shim for IE8/IE9 and styling simplification.
We found that angular-placeholder demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.