kantegory

index.html

Dec 4th, 2020 (edited)
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.65 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <title>JS Examples</title>
  7. </head>
  8. <style>
  9.   form, .form-group {
  10.     display: flex;
  11.     flex-direction: column;
  12.   }
  13.  
  14.   form, .preview {
  15.     gap: 2rem;
  16.     width: 35%;
  17.     margin: auto;
  18.     padding: 2rem 2.25rem;
  19.     border: 1.5px solid #a19f9f;
  20.     border-radius: 5px;
  21.   }
  22.  
  23.   .form-group {
  24.     gap: 0.5rem;
  25.   }
  26.  
  27.   textarea {
  28.     font-size: inherit;
  29.     font-family: inherit;
  30.   }
  31.  
  32.   input, textarea {
  33.     padding: 0.75rem 0.5rem;
  34.     border-radius: 5px;
  35.     border: 1.5px solid #a19f9f;
  36.     font-size: 1rem;
  37.     font-weight: normal;
  38.   }
  39.  
  40.   input:focus, textarea:focus {
  41.     border: 1.5px solid #52a8d5;
  42.   }
  43.  
  44.   .form-wrapper {
  45.     display: flex;
  46.     flex-direction: column;
  47.     gap: 2rem
  48.   }
  49.  
  50.   form {
  51.     order: 2;
  52.   }
  53.  
  54.   .preview {
  55.     order: 1
  56.   }
  57.  
  58.   .btn {
  59.     width: 50%;
  60.     margin: auto;
  61.   }
  62. </style>
  63. <body>
  64.   <main class="form-wrapper">
  65.     <form onsubmit="submitComment()">
  66.       <div class="form-group">
  67.         <label for="email">Адрес электронной почты:</label>
  68.         <input onkeyup="saveForm(this)" type="email" name="email" id="email" placeholder="email@example.com">
  69.       </div>
  70.  
  71.       <div class="form-group">
  72.         <label for="comment">Комментарий:</label>
  73.         <textarea onkeyup="saveForm(this)" name="comment" id="comment" placeholder="Текст комментария"></textarea>
  74.       </div>
  75.  
  76.       <div class="form-group">
  77.         <label for="lastName">Фамилия:</label>
  78.         <input onkeyup="saveForm(this)" type="text" name="lastName" id="lastName" placeholder="Иванов">
  79.       </div>
  80.  
  81.       <div class="form-group">
  82.         <label for="firstName">Имя:</label>
  83.         <input onkeyup="saveForm(this)" type="text" name="firstName" id="firstName" placeholder="Иван">
  84.       </div>
  85.  
  86.       <div class="form-group">
  87.         <label for="middleName">Отчество:</label>
  88.         <input onkeyup="saveForm(this)" type="text" name="middleName" id="middleName" placeholder="Иванович">
  89.       </div>
  90.  
  91.       <div class="form-group">
  92.         <button class="btn" type="submit">Отправить</button>
  93.         <button class="btn" type="reset" onclick="getDefaultPreview()">Сбросить</button>
  94.       </div>
  95.  
  96.     </form>
  97.  
  98.     <div class="preview">
  99.       <p>Вот так будет выглядеть ваш комментарий:</p>
  100.  
  101.       <div id="previewContent">
  102.       </div>
  103.     </div>
  104.   </main>
  105.   <script type="text/javascript">
  106.     const previewContent = document.querySelector("#previewContent");
  107.     const form = document.querySelector("form");
  108.  
  109.     const defaultPreviewContent = `
  110.       <div>
  111.         Email автора:
  112.         <p id="emailPreview"></p>
  113.       </div>
  114.       <div>
  115.         Имя:
  116.         <p>
  117.           <span id="lastNamePreview"></span>
  118.           <span id="firstNamePreview"></span>
  119.           <span id="middleNamePreview"></span>
  120.         </p>
  121.       </div>
  122.       <div>
  123.         Текст комментария:
  124.         <p id="commentPreview"></p>
  125.       </div>
  126.     `;
  127.  
  128.     const getDefaultPreview = () => {
  129.       previewContent.innerHTML = defaultPreviewContent;
  130.     }
  131.  
  132.     const submitComment = () => {
  133.       this.event.preventDefault();
  134.  
  135.       form.reset();
  136.     }
  137.  
  138.     const saveForm = (_this) => {
  139.       previewContent
  140.         .querySelector(`#${_this.id}Preview`)
  141.         .innerHTML = _this.value;
  142.     }
  143.  
  144.     document.addEventListener("DOMContentLoaded", () => {
  145.       getDefaultPreview();
  146.     })
  147.   </script>
  148. </body>
  149. </html>
  150.  
Add Comment
Please, Sign In to add comment