Как получить все данные с полей формы и сформировать на основании этого верстку?
const btnAdd = document.querySelector('.btn'),
inputName = document.querySelector('#name'),
inputDescr = document.querySelector('#description'),
inputLink = document.querySelector('#link'),
inputPrice = document.querySelector('#price');
.aside {
&__form {
padding: 24px;
background: #fffefb;
box-shadow: 0px 20px 30px rgba(0, 0, 0, 0.04), 0px 6px 10px rgba(0, 0, 0, 0.02);
border-radius: 4px;
max-width: 332px;
&:hover {
border: 1px solid $green-color;
transition: .2s all;
}
}
&__input {
display: flex;
flex-direction: column;
padding-bottom: 16px;
}
&__label {
font-size: 10px;
line-height: 13px;
letter-spacing: -0.02em;
color: #49485e;
padding-bottom: 4px;
span {
&:after {
position: relative;
content: "";
display: block;
width: 4px;
height: 4px;
background: #ff8484;
border-radius: 4px;
bottom: 13px;
}
}
}
}
.label {
&_1 span::after {
left: 96px;
}
&_2 span {
line-height: 17px;
&::after {
display: none;
}
}
&_3 span::after {
left: 135px;
}
&_4 span::after {
left: 55px;
}
}
input {
background: #fffefb;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
border-radius: 4px;
width: 284px;
height: 36px;
font-size: 12px;
line-height: 15px;
padding-left: 16px;
&::placeholder {
color: #b4b4b4;
}
}
textarea {
width: 284px;
height: 108px;
padding: 10px 0 0 16px;
resize: none;
background: #fffefb;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
border-radius: 4px;
&::placeholder {
font-size: 12px;
line-height: 15px;
color: #b4b4b4;
}
}
input:focus, textarea:focus {
border: 2px solid $green-color;
transition: .1s all;
}
.btn {
width: 284px;
height: 36px;
background: $green-color;
border-radius: 10px;
font-family: Inter;
font-style: normal;
font-weight: 600;
font-size: 12px;
line-height: 15px;
text-align: center;
letter-spacing: -0.02em;
color: #FFFFFF;
&:hover {
background-color: #619b58;
transition: .4s all;
}
}
<form action="#" id="form" class="aside__form form">
<div class="aside__input">
<label class="label_1 aside__label label_basic" for="name"><span>Наименование товара<sup></sup></span></label>
<input name="name" id="name" type="text" placeholder="Введите наименование товара">
</div>
<div class="aside__input">
<label class="label_2 aside__label label_basic" for="description"><span>Описание товара</span></label>
<textarea name="description" id="description" placeholder="Введите описание товара"></textarea>
</div>
<div class="aside__input">
<label class="label_3 aside__label label_basic" for="link"><span>Ссылка на изображение товара</span></label>
<input name="link" id="link" type="url" placeholder="Введите ссылку">
</div>
<div class="aside__input">
<label class="label_4 aside__label label_basic" for="price"><span>Цена товара</span></label>
<input name="price" id="price" type="text" placeholder="Введите цену">
</div>
<button class="btn aside__btn">Добавить товар</button>
</form>
Есть такая форма, задача при клике на button сформировать верстку т.е. отобразить карточки. Валидация не нужна, просто чтобы заполненные поля вывелись в карточку. Можно получить поля просто в массив. Понимаю что нужно вешать обработчики, отменять стандартное поведение и т.д. в целом тяжело картину в голове построить, поэтапно что да как. Нужно на чистом JS реализовать, без jQuery. Если кто поможет буду благодарен