聚合物元素表格未提交所有字段

Polymer Elements Form not submitting all fields

我的代码如下。

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <link rel="shortcut icon" href="/favicon.ico" type="image/png" />
        <title>configurator- Log in</title>

        <link rel="stylesheet" type="text/css" href="/public/stylesheets/style.css">
        <script nonce='d8c9ef6060da432f9a21d440196fa3e17adb185464944bb93fdd1809e02fa1' type="module">
            import('@polymer/iron-form/iron-form.js');
            import('@polymer/paper-input/paper-input.js');
            import('@polymer/paper-button/paper-button.js');
        </script>
        <meta charset="UTF-8">
    </head>
    <body>
       <header>
            <a href="/" class="logo"><img src="/images/logo.gif" alt="Logo"></a>
            <div>
                <h1>Router</h1>
                <h2>Log in</h2>
            </div>
    </header>
    <menu>
        <p><a href="/">Home</a></p>
        <p>Log in</p>
    </menu>
        <section id="_content">
            <div id="_flashes" class="flashes">
            </div>
            <form is="iron-form" allow-redirect method="post" id="_form" action="/login">
                <input type="hidden" name="_csrf" value="iNg6gJDo-k61QJuGnqA8DjEKttgFS6qyUGgo">
                <paper-input type="password" name="password" label="Password"></paper-input>
                <paper-button raised onclick="submitForm()">Log In</paper-button>
            </form>
            <script>
                function submitForm(e) {
                    document.getElementById("_form").submit();
                }
            </script>
        </section>
        <footer>
            Configurator version . &copy;2018
        </footer>
    </body>
</html>

当我点击提交按钮时,只有名为_csrf 的字段被传输。 paper-input 字段未发送。我究竟做错了什么?我已经尝试了来自处理 Polymer 的各种网站的许多不同建议,但 none 似乎是合适的。我在浏览库时注意到有一个提交函数,它从 Shadow DOM 中找到的那些元素中收集值,并在提交表单之前将其编组到动态创建的隐藏输入字段中。在我的案例中似乎没有调用此函数,我也不知道为什么。

您使用的是原生表单,它将拾取原生元素并发送它们,您唯一的 "plain" 输入是 _csrf。

我不认为搜索 "down" 进入 shadowDom 以查看在纸张输入的定义中某处有输入。

因此您可以使用所有本机输入(这违背了使用 Web 组件的目的)或使用另一个 "knows" 如何处理此问题的 Web 组件,例如包装您的 <form>进入 <iron-form> 并提交那个。