- 聚合物有用资源
- 聚合物 - 快速指南
- 聚合物 - 有用资源
- 聚合物 - 讨论
聚合物 - Iron 表单
<iron-form> 是一个 HTML <form> 元素,用于验证和提交任何自定义元素和本机元素。既支持 get 方法也支持 post 方法,并且使用 ironajax 元素来向操作 URL 提交数据。
默认情况下,本机按钮元素提交下面的表单 -
<form is = "iron-form" id = "form" method = "post" action = "/form/handler"> <paper-input name = "password" label = "Password"></paper-input> <input name = "address"> ... </form>
显式地调用表单的 submit 方法,如果你想从自定义元素的点击处理程序中提交,如下命令所示。
<paper-button raised onclick = "submitForm()">Submit</paper-button>
function submitForm() {
document.getElementById('form').submit();
}
下面的代码显示了 iron-form-presubmit 事件,如果你想要自定义发送到服务器的请求,可以监听该事件。
form.addEventListener('iron-form-presubmit', function() {
this.request.method = 'put';
this.request.params = someCustomParams;
});
示例
要实现 iron-form 元素,请安装必要的元素并将其导入到 index.html 文件中。
下面的示例演示了 iron-form 元素的使用 -
<!DOCTYPE html>
<html>
<head>
<title>iron-form</title>
<base href = "https://polygit.org/polymer+1.5.0/components/">
<script src = "webcomponentsjs/webcomponents-lite.min.js"></script>
<link rel = "import" href = "polymer/polymer.html">
<link rel = "import" href = "iron-form/iron-form.html">
<link rel = "import" href = "paper-input/paper-input.html">
<link rel = "import" href = "paper-button/paper-button.html">
<link rel = "import" href = "paper-dropdown-menu/paper-dropdown-menu.html">
<link rel = "import" href = "paper-menu/paper-menu.html">
<link rel = "import" href = "paper-item/paper-item.html">
<style>
.paperbtn {
background: #4682B4;
color: white;
}
.paperinput{
width: 25%;
}
.menu{
width:25%;
}
</style>
</head>
<body>
<form is = "iron-form" method = "get" action = "/" id = "basic">
<paper-input class = "paperinput" name = "name" label = "Enter your name" required<
</paper-input>
<br>
<input type = "checkbox" name = "vehicle" value = "bike"> I have a bike
<br>
<input type = "checkbox" name = "vehicle" value = "car"> I have a car
<br>
<paper-dropdown-menu class = "menu" label = "Icecream Flavours" name = "Flavours">
<paper-menu class = "dropdown-content">
<paper-item value = "vanilla">Vanilla</paper-item>
<paper-item value = "strawberry">Strawberry</paper-item>
<paper-item value = "caramel">Caramel</paper-item>
</paper-menu>
</paper-dropdown-menu><br>
<paper-button class = "paperbtn" raised onclick = "_submit(event)">Submit</paper-button>
<paper-button class = "paperbtn" raised onclick = "_reset(event)">Reset</paper-button>
<h4>You entered the details:</h4>
<div class = "output"></div>
</form>
<script>
function _submit(event) {
Polymer.dom(event).localTarget.parentElement.submit();
}
function _reset(event) {
var form = Polymer.dom(event).localTarget.parentElement
form.reset();
form.querySelector('.output').innerHTML = '';
}
basic.addEventListener('iron-form-submit', function(event) {
this.querySelector('.output').innerHTML = JSON.stringify(event.detail);
});
</script>
</body>
</html>
输出
要运行应用程序,请导航到项目目录并运行以下命令。
polymer serve
现在打开浏览器并导航至 http://127.0.0.1:8081/。输出如下。
polymer_elements.htm
广告