2017-06-05 33 views
1

我有以下組成部分:聚合物:形式不發送紙質稱輸入值和所需的屬性不工作

<link rel="import" href="./bower_components/polymer/polymer-element.html"> 
<link rel="import" href="./bower_components/paper-input/paper-input.html"> 
<link rel="import" href="./bower_components/iron-form/iron-form.html"> 

<dom-module id="my-form"> 
    <template> 
     <b>Test</b> 
     <form is="iron-form" id="form" method="post" action="/save"> 
      <paper-input name="name" value=""></paper-input> 
      <button type="submit">submit!</button> 
     </form> 
    </template> 

    <script> 
     /** 
     * @customElement 
     * @polymer 
     */ 
     class MyForm extends Polymer.Element { 
      static get is() { return 'my-form'; } 
      static get properties() { 
       return { }; 
      } 
     } 
     window.customElements.define(MyForm.is, MyForm); 
    </script> 
</dom-module> 

有兩個問題:當我點擊

  1. 表單提交提交按鈕和要求輸入 爲空。
  2. 提交表單時不發送任何內容。

發生了什麼事?

+1

採取這裏的第三個例子看看HTTPS://www.webcomponents .org/element/PolymerElements/iron-form/demo/demo/index.html – Alon

+0

謝謝@Alon,但它對我不起作用。我正在使用Polymer v2。另外,當'paper-input'無效時,我想避免提交表單。 – Amparo

+0

然後使用'paper-button'調用一些函數,在'validate'中使用鐵形式,如果'validate'返回true,然後在'iron-form'上調用'submit'?這是你想要的嗎? –

回答

0

What's new in 2.0

另外,儘管它們在說明書中被支持,聚合物2.0目前不支持型延伸元件(is=)。

這是您的代碼無法正常工作的主要原因。 is屬性不再受支持。

目前的解決方法使用is如下:

// Before 2.0 
<form /.../ is="iron-form"></form> 

// After 2.0 
<iron-form> 
    <form /.../></form> 
</iron-form> 

你的代碼應該是這樣的:

<link rel="import" href="./bower_components/polymer/polymer-element.html"> 
<link rel="import" href="./bower_components/paper-input/paper-input.html"> 
<link rel="import" href="./bower_components/iron-form/iron-form.html"> 

<dom-module id="my-form"> 
    <template> 
     <b>Test</b> 
     <iron-form> 
      <form id="form" method="post" action="/save"> 
       <paper-input name="name" value=""></paper-input> 
       <button type="submit">submit!</button> 
      </form> 
     </iron-form> 
    </template> 

    <script> 
     /** 
     * @customElement 
     * @polymer 
     */ 
     class MyForm extends Polymer.Element { 
      static get is() { return 'my-form'; } 
      static get properties() { 
       return { }; 
      } 
     } 
     window.customElements.define(MyForm.is, MyForm); 
    </script> 
</dom-module>