Package Exports
- @polymer/iron-input
- @polymer/iron-input/iron-input
- @polymer/iron-input/iron-input.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@polymer/iron-input) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
<iron-input>
<iron-input>
adds two-way binding and custom validators using Polymer.IronValidatorBehavior
to <input>
.
See: Documentation, Demo.
Usage
Installation
npm install --save @polymer/iron-input
In an html file
<html>
<head>
<script type="module">
import '@polymer/iron-input/iron-input.js';
</script>
</head>
<body>
<iron-input>
<input>
</iron-input>
</body>
</html>
In a Polymer 3 element
import {PolymerElement, html} from '@polymer/polymer';
import '@polymer/iron-input/iron-input.js';
class SampleElement extends PolymerElement {
static get template() {
return html`
<iron-input>
<input>
</iron-input>
`;
}
}
customElements.define('sample-element', SampleElement);
Two-way binding
By default you can only get notified of changes to an input
's value
due to user input:
<input value="{{myValue::input}}">
iron-input
adds the bind-value
property that mirrors the value
property, and can be used
for two-way data binding. bind-value
will notify if it is changed either by user input or by script.
<iron-input bind-value="{{bindValue}}">
<input value="{{value::input}}">
</iron-input>
Custom validators
You can use custom validators that implement Polymer.IronValidatorBehavior
with <iron-input>
.
<iron-input auto-validate validator="my-custom-validator">
<input placeholder="only 'cat' is valid">
</iron-input>
Stopping invalid input
It may be desirable to only allow users to enter certain characters. You can use the
prevent-invalid-input
and allowed-pattern
attributes together to accomplish this. This feature
is separate from validation, and allowed-pattern
does not affect how the input is validated.
<!-- only allow characters that match [0-9] -->
<iron-input allowed-pattern="[0-9]">
<input pattern="\d{5}">
</iron-input>
Contributing
If you want to send a PR to this element, here are the instructions for running the tests and demo locally:
Installation
git clone https://github.com/PolymerElements/iron-input
cd iron-input
npm install
npm install -g polymer-cli
Running the demo locally
polymer serve --npm
open http://127.0.0.1:<port>/demo/
Running the tests
polymer test --npm