Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <div class="form">
  9. <form id="frm" action="/regulations" method="POST">
  10. <div id="container">
  11. <div class="fields">
  12. <label>Правило:</label>
  13. <input type="text" name="regexp" placeholder="regexp(e.g. ^\+|^\-)">
  14. <label>Тип данных:</label>
  15. <input type="text" name="type" placeholder="e.g. money">
  16. </div>
  17. </div>
  18. <input type="submit">
  19. </form>
  20. </div>
  21. <button id="add-form">ADD</button>
  22.  
  23. <script>
  24. (function(){
  25. const btn = document.getElementById("add-form");
  26. let forms = document.getElementById("frm");
  27.  
  28. const listenerCallback = function(e){
  29. e.preventDefault();
  30. let regs = document.querySelectorAll('input[name=regexp]');
  31. let types = document.getElementsByClassName('input[name=type]');
  32. let rg = [], tp = [];
  33. for (let reg of regs) {
  34. rg.push(reg.value);
  35. }
  36. for(let type of types){
  37. tp.push(type.value);
  38. }
  39. let xhr = new XMLHttpRequest();
  40. xhr.open('POST', '/regulations', false);
  41. //тело можно сформировать в разных форматах
  42. xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');//формат тела запроса (пример https://learn.javascript.ru/xhr-forms)
  43. //xhr.setRequestHeader('Content-Type', 'application/json');
  44. let body = 'regexp = ' + encodeURIComponent(rg) + '&type = ' + encodeURIComponent(tp); //формирование тела запроса (зависит от формата), здесь кодировка - urlencoded
  45. //let body = JSON.stringify({regexp: rg, type: tp}); //здесь формат JSON
  46. xhr.onreadystatechange = function(){
  47. if(this.status === 200){
  48. console.log('получение данных');
  49. }else{
  50. console.log('error');
  51. }
  52. }
  53. xhr.send(body);
  54. }
  55.  
  56. forms.onsubmit = e => listenerCallback(e);
  57.  
  58. btn.onclick = function(e){
  59. e.preventDefault();
  60. addForm("container", createDiv("fields"));
  61. }
  62.  
  63. const createDiv = function(divClass){
  64. let fields = document.getElementsByClassName(divClass)[0].innerHTML;
  65. let div = document.createElement('div');
  66. div.innerHTML = fields;
  67. div.classList.add(divClass);
  68. return div;
  69. }
  70.  
  71. const addForm = function(block, div){
  72. let form = document.getElementById(block);
  73. form.appendChild(div);
  74. }
  75. })()
  76. </script>
  77. </body>
  78. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement