iron-form

Custom form element

  • Owner: PolymerElements/iron-form
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Published on NPM
Build status
Published on webcomponents.org

<iron-form>

<iron-form> is a wrapper around the HTML <form> element, that can
validate and submit both custom and native HTML elements.

It has two modes: if allow-redirect is true, then after the form submission you
will be redirected to the server response. Otherwise, if it is false, it will
use an iron-ajax element to submit the form contents to the server.

See: Documentation,
Demo.

Usage

Installation

npm install --save @polymer/iron-form

In an html file

<html>
  <head>
    <script type="module">
      import '@polymer/iron-form/iron-form.js';
      import '@polymer/paper-checkbox/paper-checkbox.js';
    </script>
  </head>
  <body>
    <iron-form>
      <form method="get" action="/form/handler">
        <input type="text" name="name" value="Batman">
        <input type="checkbox" name="donuts" checked> I like donuts<br>
        <paper-checkbox name="cheese" value="yes" checked></paper-checkbox>
      </form>
    </iron-form>
  </body>
</html>

By default, a native <button> element (or input type="submit") will submit this form.
However, if you want to submit it from a custom element's click handler, you need to explicitly
call the iron-form's submit method:

  <paper-button raised onclick="submitForm()">Submit</paper-button>

  function submitForm() {
    document.getElementById('iron-form').submit();
  }

In a Polymer 3 element

import {PolymerElement, html} from '@polymer/polymer';
import '@polymer/iron-form/iron-form.js';
import '@polymer/paper-checkbox/paper-checkbox.js';

class SampleElement extends PolymerElement {
  static get template() {
    return html`
    <iron-form>
      <form method="get" action="/form/handler">
        <input type="text" name="name" value="Batman">
        <input type="checkbox" name="donuts" checked> I like donuts<br>
        <paper-checkbox name="cheese" value="yes" checked></paper-checkbox>
      </form>
    </iron-form>
    `;
  }
}
customElements.define('sample-element', SampleElement);

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-form
cd iron-form
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

Main metrics

Overview
Name With OwnerPolymerElements/iron-form
Primary LanguageHTML
Program languageHTML (Language Count: 2)
Platform
License:
所有者活动
Created At2015-05-13 01:01:02
Pushed At2023-10-16 14:02:54
Last Commit At2019-11-06 16:04:49
Release Count46
Last Release Namev3.0.1 (Posted on 2018-09-13 19:53:43)
First Release Namev0.9.0 (Posted on )
用户参与
Stargazers Count64
Watchers Count20
Fork Count77
Commits Count397
Has Issues Enabled
Issues Count161
Issue Open Count36
Pull Requests Count101
Pull Requests Open Count9
Pull Requests Close Count34
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private