Polymer 聚合:表单不发送纸张输入值,且所需属性不起作用

Polymer 聚合:表单不发送纸张输入值,且所需属性不起作用,polymer,polymer-2.x,Polymer,Polymer 2.x,我有以下组成部分: <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">

我有以下组成部分:

<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>

试验
提交
/**
*@customElement
*@聚合物
*/
类MyForm扩展了Polymer.Element{
静态get是(){return'my form';}
静态获取属性(){
返回{};
}
}
window.customElements.define(MyForm.is,MyForm);
有两个问题:

  • 当我点击submit按钮并输入所需内容时,表单被提交 是空的
  • 提交表单时不发送任何内容
  • 发生了什么事?

    来自:

    此外,尽管规范中支持类型扩展元素,但Polymer 2.0目前不支持类型扩展元素(
    is=

    这是代码无法工作的主要原因。
    is
    属性不再受支持

    使用
    的当前解决方法如下所示:

    // Before 2.0
    <form /.../ is="iron-form"></form>
    
    // After 2.0
    <iron-form>
      <form /.../></form>
    </iron-form>
    
    //2.0之前的版本
    //2.0之后
    
    然后,您的代码应该如下所示:

    <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>
    
    
    试验
    提交
    /**
    *@customElement
    *@聚合物
    */
    类MyForm扩展了Polymer.Element{
    静态get是(){return'my form';}
    静态获取属性(){
    返回{};
    }
    }
    window.customElements.define(MyForm.is,MyForm);
    
    来自:

    此外,尽管规范中支持类型扩展元素,但Polymer 2.0目前不支持类型扩展元素(
    is=

    这是代码无法工作的主要原因。
    is
    属性不再受支持

    使用
    的当前解决方法如下所示:

    // Before 2.0
    <form /.../ is="iron-form"></form>
    
    // After 2.0
    <iron-form>
      <form /.../></form>
    </iron-form>
    
    //2.0之前的版本
    //2.0之后
    
    然后,您的代码应该如下所示:

    <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>
    
    
    试验
    提交
    /**
    *@customElement
    *@聚合物
    */
    类MyForm扩展了Polymer.Element{
    静态get是(){return'my form';}
    静态获取属性(){
    返回{};
    }
    }
    window.customElements.define(MyForm.is,MyForm);
    
    请看第三个示例,谢谢@Alon,但它对我不起作用。我用的是聚合物v2。此外,我希望避免在
    纸质输入
    无效时提交表单。然后使用调用某些函数的
    纸质按钮
    ,在该按钮中,您可以
    验证
    铁制表单,如果
    验证
    返回true,则在
    铁制表单
    上调用
    提交
    ?这是你想要的吗?我不能让它工作,我想这是因为我用的是聚合物2
    required
    属性在我使用Polymer 1时起作用(但不是
    invalid
    property)@Amparo您的bower.json中有哪个版本的iron表单?你能告诉我吗?看看第三个例子,谢谢@Alon,但它对我不起作用。我用的是聚合物v2。此外,我希望避免在
    纸质输入
    无效时提交表单。然后使用调用某些函数的
    纸质按钮
    ,在该按钮中,您可以
    验证
    铁制表单,如果
    验证
    返回true,则在
    铁制表单
    上调用
    提交
    ?这是你想要的吗?我不能让它工作,我想这是因为我用的是聚合物2
    required
    属性在我使用Polymer 1时起作用(但不是
    invalid
    property)@Amparo您的bower.json中有哪个版本的iron表单?你能告诉我吗?