<iron-input> adds two-way binding and custom validators using Polymer.IronValidatorBehavior
to <input>.
See: Documentation, Demo.
npm install --save @polymer/iron-input
<html><head><scripttype="module">import'@polymer/iron-input/iron-input.js';</script></head><body><iron-input><input></iron-input></body></html>import{PolymerElement,html}from'@polymer/polymer';import'@polymer/iron-input/iron-input.js';classSampleElementextendsPolymerElement{staticgettemplate(){returnhtml`<iron-input><input></iron-input> `;}}customElements.define('sample-element',SampleElement);By default you can only get notified of changes to an input's value due to user input:
<inputvalue="{{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-inputbind-value="{{bindValue}}"><inputvalue="{{value::input}}"></iron-input>You can use custom validators that implement Polymer.IronValidatorBehavior with <iron-input>.
<iron-inputauto-validatevalidator="my-custom-validator"><inputplaceholder="only 'cat' is valid"></iron-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-inputallowed-pattern="[0-9]"><inputpattern="\d{5}"></iron-input>If you want to send a PR to this element, here are the instructions for running the tests and demo locally:
git clone https://github.com/PolymerElements/iron-input
cd iron-input
npm install
npm install -g polymer-clipolymer serve --npm
open http://127.0.0.1:<port>/demo/polymer test --npm