Polymer - Iron Form
<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>
如果您想从自定义元素的点击处理程序提交表单,请明确调用表单的提交方法,如以下命令所示。
<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/。以下是输出。
