Javascript 聚合元素表单未提交所有字段

Javascript 聚合元素表单未提交所有字段,javascript,polymer,Javascript,Polymer,我的代码如下 <!doctype html> <html> <head> <meta charset="UTF-8"> <link rel="shortcut icon" href="/favicon.ico" type="image/png" /> <title>configurator- Log in</title> <link

我的代码如下

<!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>

配置程序-登录
导入('@polymer/iron form/iron form.js');
导入('@polymer/paper-input/paper-input.js');
导入('@polymer/paper-button/paper-button.js');
路由器
登录

登录

登录 函数提交形式(e){ document.getElementById(“_form”).submit(); } 配置程序版本&复制2018

单击submit按钮时,仅传输名为_csrf的字段。未发送
纸张输入
字段。我做错了什么?我尝试了很多不同的建议,从不同的网站处理聚合物,但似乎没有一个是合适的。我在浏览库时注意到,有一个submit函数,它从影子DOM中的元素中收集值,并在提交表单之前将其封送到动态创建的隐藏输入字段中。在我的例子中,这个函数似乎没有被调用,我也不知道为什么。

您使用的是一个本机表单,它将获取本机元素并发送它们,您在那里唯一的“普通”输入是_csrf

我认为搜索不会“向下”进入
shadowDom
,以查看纸张输入定义中的某个输入


因此,您可以使用所有本机输入(这与使用web组件的目的背道而驰),也可以使用另一个“知道”如何处理此问题的web组件,例如,将您的
包装成
并提交该组件。

谢谢,mishu。我昨晚找到了一个解决方案,但还没有发布。是的,我的解决方案与您的建议一致:用一个。然后我在iron表单上调用submit()函数,所有工作都如我所期望的那样。这是我第一次涉足nodejs、express和polymer。