Javascript 如何提交铁表和触发表';什么行动?

Javascript 如何提交铁表和触发表';什么行动?,javascript,polymer,web-component,html-input,paper-elements,Javascript,Polymer,Web Component,Html Input,Paper Elements,我有一个表单,它应该在提交时使用表单的action属性将输入值发布到FormSpreeAPI。在我添加了is=“iron form”之后,它只是将值输出,但由于某种原因不会触发操作属性 <form is="iron-form" action="https://formspree.io/MY_EMAIL_HERE" method="post"> <paper-input type="email" name="email" label="Your email" require

我有一个表单,它应该在提交时使用表单的
action
属性将输入值发布到FormSpreeAPI。在我添加了
is=“iron form”
之后,它只是将值输出,但由于某种原因不会触发
操作
属性

<form is="iron-form" action="https://formspree.io/MY_EMAIL_HERE" method="post">

  <paper-input type="email" name="email" label="Your email" required></paper-input>    
  <paper-textarea name="message" label="Your message" required char-counter maxlength="2000"></paper-textarea>

  <input type="hidden" name="_next" value="{{baseUrl}}contact_form_sent" />

  <paper-button class="sendButton" on-click="_submit">Send</paper-button>
</form>

...

<script>
  Polymer({
    is: 'my-contact',
    _submit: function() {
      this.$.form.submit();
    }
  });
</script>

发送
...
聚合物({
是‘我的联系人’,
_提交:函数(){
此.$.form.submit();
}
});

此。$
是当前聚合元素中节点的ID映射(请参见聚合元素)。因此,
this.$.form
正在尝试访问ID为“form”的元素,但没有ID为该元素,因此该值将是
未定义的

您可以通过将
的ID设置为“form”来解决此问题:


提交
[[u响应]]
解决方案: 根据此页面上的最后一个示例,我必须使用2个表单,以便将页面重定向到
action
属性中指定的URL,因此我相应地对其进行了更改:


发送
聚合物({
是‘我的联系人’,
_nativeSubmit:function(){
redirectDemo=此。$.redirectDemo;
nativeForm=此。$.nativeForm;
if(redirectDemo.validate()){
//对于iron表单想要提交的每个元素,创建一个隐藏的
//在提交表格中输入。
var serializedItems=redirectDemo.serialize();
for(序列化数据项中的变量名称){
var input=document.createElement('input');
input.hidden=true;
input.name=名称;
input.value=serializedItems[name];
nativeForm.appendChild(输入);
}
nativeForm.submit();
}
}
});
<form id="form" ...>
  <form is="iron-form" id="redirectDemo">
      <paper-input type="email" name="email" label="Your email" required></paper-input>
      <paper-textarea name="message" label="Your message" required char-counter maxlength="2000"></paper-textarea>

      <input type="hidden" name="_next" value="{{baseUrl}}contact_form_sent" />
      <input type="text" name="_gotcha" style="display:none" />

      <paper-button class="sendButton"  on-click="_nativeSubmit">Send</paper-button>
  </form>

  <form method="post" action="URL HERE" id="nativeForm"></form>

  <script>
    Polymer({
      is: 'my-contact',

      _nativeSubmit: function() {
         redirectDemo = this.$.redirectDemo;
         nativeForm = this.$.nativeForm;
          if (redirectDemo.validate()) {
            // For each element the iron-form wants to submit, create a hidden
            // input in the submission form.
            var serializedItems = redirectDemo.serialize();
            for (var name in serializedItems) {
              var input = document.createElement('input');
              input.hidden = true;
              input.name = name;
              input.value = serializedItems[name];
              nativeForm.appendChild(input);
            }
            nativeForm.submit();
          }
      }

    });
  </script>