Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- </head>
- <body>
- <div class="form">
- <form id="frm" action="/regulations" method="POST">
- <div id="container">
- <div class="fields">
- <label>Правило:</label>
- <input type="text" name="regexp" placeholder="regexp(e.g. ^\+|^\-)">
- <label>Тип данных:</label>
- <input type="text" name="type" placeholder="e.g. money">
- </div>
- </div>
- <input type="submit">
- </form>
- </div>
- <button id="add-form">ADD</button>
- <script>
- (function(){
- const btn = document.getElementById("add-form");
- let forms = document.getElementById("frm");
- const listenerCallback = function(e){
- e.preventDefault();
- let regs = document.querySelectorAll('input[name=regexp]');
- let types = document.getElementsByClassName('input[name=type]');
- let rg = [], tp = [];
- for (let reg of regs) {
- rg.push(reg.value);
- }
- for(let type of types){
- tp.push(type.value);
- }
- let xhr = new XMLHttpRequest();
- xhr.open('POST', '/regulations', false);
- //тело можно сформировать в разных форматах
- xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');//формат тела запроса (пример https://learn.javascript.ru/xhr-forms)
- //xhr.setRequestHeader('Content-Type', 'application/json');
- let body = 'regexp = ' + encodeURIComponent(rg) + '&type = ' + encodeURIComponent(tp); //формирование тела запроса (зависит от формата), здесь кодировка - urlencoded
- //let body = JSON.stringify({regexp: rg, type: tp}); //здесь формат JSON
- xhr.onreadystatechange = function(){
- if(this.status === 200){
- console.log('получение данных');
- }else{
- console.log('error');
- }
- }
- xhr.send(body);
- }
- forms.onsubmit = e => listenerCallback(e);
- btn.onclick = function(e){
- e.preventDefault();
- addForm("container", createDiv("fields"));
- }
- const createDiv = function(divClass){
- let fields = document.getElementsByClassName(divClass)[0].innerHTML;
- let div = document.createElement('div');
- div.innerHTML = fields;
- div.classList.add(divClass);
- return div;
- }
- const addForm = function(block, div){
- let form = document.getElementById(block);
- form.appendChild(div);
- }
- })()
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement