我想在Polymer 3中提交铁表格。我使用纸质按钮,并且该表格必须通过iron-ajax提交。
这是我的 view.js
import { PolymerElement, html } from '@polymer/polymer/polymer-element.js';
import './shared-styles.js';
class Foo extends PolymerElement {
static get template() {
return html'
<iron-form>
<form id="formOne" method="post" action="https://my-api-url.com" is="iron-form">
<paper-input name="input-1" placeholder="Input One"></paper-input>
<paper-button on-tap="submitHandler">Submit</paper-button>
</form>
</iron-form>
';
}
submitHandler() {
this.$.formOne.generateRequest();
}
}
window.customElements.define('foo', Foo);
单击纸张按钮时未提交我的表单。
generateRequest()
。可行。submitHandler
函数中发出了警报。已显示。this.$.formOne.submit()
提交表单。这也起作用。当然,表单不是通过ajax提交的,但是api页面已打开。<button>
来提交表单。这可行,并且也可以通过ajax发送表单,但是我想使用纸张按钮。我们非常感谢您的帮助。谢谢!
答案 0 :(得分:0)
我尝试使用
this.$.formOne.submit()
提交表单。这也起作用。当然,表单不是通过ajax提交的,但是api页面已打开。
问题是您错误地调用了<form>.submit()
(执行了本机submit
的同步<form>
方法)而不是<iron-form>.submit()
。要解决此问题,请将ID移至<iron-form>
,它将执行预期的异步submit
方法:
<iron-form id="formOne">
<!-- <form id="formOne"> --> <!-- DON'T DO THIS -->
<form>...</form>
</iron-form>