Modify iron-form JSON before submitting

百般思念 提交于 2019-12-20 06:30:28

问题


I'm wondering if it is possible to edit the JSON file of an iron-form before submitting it? For instance, if I want to add an array which doesn't come from any of the form input, or if I want to add a unique key in it...

If it is possible, I believe it would be during the form pre-submit, but the documentation says nothing about "how to intercept the JSON" or something like that.

Thanks!


回答1:


You could modify the iron-form's request object in the iron-form-presubmit event handler. For POST requests, the form data is stored in the body, which you would access by this.$.form.request.body. For other request types, the data is in this.$.form.request.params. This example adds an array to the request's body:

// template
<form is="iron-form" id="form" on-iron-form-presubmit="_presubmit" method="post">...</form>

// script
_presubmit: function(e) {
  var body = this.$.form.request.body;
  body['newkey'] = [1,2,3];
  console.log('body', body);
},

<head>
  <base href="https://polygit.org/polymer+1.11.3/components/">
  <script src="webcomponentsjs/webcomponents-lite.js"></script>
  <link rel="import" href="polymer/polymer.html">
  <link rel="import" href="iron-form/iron-form.html">
  <link rel="import" href="paper-input/paper-input.html">
  <link rel="import" href="paper-button/paper-button.html">
</head>
<body>
  <x-foo></x-foo>

  <dom-module id="x-foo">
    <template>
      <form is="iron-form" id="form" on-iron-form-presubmit="_presubmit" method="post" action="//httpbin.org/post">
        <paper-input name="name" label="name"></paper-input>
        <paper-button on-tap="_submit">Submit</paper-button>
      </form>
    </template>
    <script>
      HTMLImports.whenReady(function() {
        Polymer({
          is: 'x-foo',
          _presubmit: function(e) {
            var body = this.$.form.request.body;
            body['newkey'] = [1,2,3];
            console.log('body', body);
          },
          _submit: function() {
            this.$.form.submit();
          }
        });
      });
    </script>
  </dom-module>
</body>

codepen



来源:https://stackoverflow.com/questions/37852973/modify-iron-form-json-before-submitting

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!