聚合物纸标签输入未添加到表单中

时间:2018-04-27 20:48:17

标签: polymer polymer-2.x

尝试在paper-tags-input的POST请求中包含数组字段。

表格设置如下:

<paper-dialog id="dialog" modal class="size-position">
<iron-form id="myForm" on-iron-form-response="_formResponse">
  <form method="post" enctype="application/json" action="http://127.0.0.1:8080/items">

    <paper-input name="owner" label="Owner"></paper-input>

    <paper-tags-input name="tags" label="Tag(s)" duplicate-error-message="Duplicate">
    </paper-tags-input>

    <div class="buttons">
        <paper-button raised dialog-dismiss class="cancel">
            Cancel
        </paper-button>
        <paper-button raised dialog-confirm autofocus on-tap="_submit" class="submit">
            Submit
        </paper-button>
    </div>

  </form>
</iron-form>
</paper-dialog>
...
<script>
    ...
    _submit() {
        this.$.myForm.submit();
    }
</script>

虽然请求有效负载中包含名为paper-input的{​​{1}}字段,但请求有效负载中的owner没有添加任何内容。

如何获取POST请求有效负载中包含的tags数组字段中的值?

如果无法实现上述目标,那么我认为另一种解决方案是声明一个名为tags的新属性,并将其设置为tags_list的{​​{1}}属性,如:< / p>

tags

然后我看到paper-tags-input中提供了值,我可以在<paper-tags-input name="tags" label="Tag(s)" duplicate-error-message="Duplicate" tags="{{tags_list}}"> </paper-tags-input> 函数中访问这些值。如何在提交之前将其添加到this.tags_list

1 个答案:

答案 0 :(得分:0)

了解如何使用第二种方法执行此操作。

提示:Modify iron-form JSON before submitting

添加了这样的铁形式的预先提交:

<iron-form id="myForm" 
    on-iron-form-presubmit="_preSubmit" 
    on-iron-form-response="_formResponse">
...
<script>
  _preSubmit() {
      var body = this.$.myForm.request.body;
      body['tags'] = [];
      this.tags_list.forEach(function(tag) {
          body['tags'].push({"name": tag});
      });
  }
</script>

实际上这种方法是我可能需要的,因为我需要修改数组值并将每个值保留为对象。