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 . ©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。