JSFiddle - React, Tailwind, and code Playground
by Artur Soul
HTML
<div>
<form id="linkod" action="" method="post">
<div class="some_wrap main_data">
<input type="hidden" name="id">
<input type="text" name="inn" placeholder="Введите ИНН">
<input type="text" name="group" placeholder="Введите группу">
</div>
</form>
<div class="some_content">
<div class="some_wrap">
<select name="type">
<option value="Приход">Приход</option>
<option value="Возврат прихода">Возврат прихода</option>
<option value="Расход">Расход</option>
<option value="Возврат расхода">Возврат расхода</option>
</select>
</div>
<div class="product_item" data-id="0">
<div class="product_item__wrapp">
<input type="text" name="text" placeholder="Наименование предмета расчета">
<input type="text" name="price" placeholder="Цена за единицу предмета расчета">
<input type="number" name="quantity" placeholder="Количество предмета расчета">
</div>
<div class="product_item__wrapp">
<select name="tax">
<option value="ставка НДС 20%">ставка НДС 20%</option>
<option value="ставка НДС 10%">ставка НДС 10%</option>
<option value="ставка НДС расч. 20/110">ставка НДС расч. 20/110</option>
<option value="ставка НДС расч. 10/110">ставка НДС расч. 10/110</option>
<option value="ставка НДС 0%">ставка НДС 0%</option>
<option value="НДС не облагается" selected>НДС не облагается</option>
</select>
<select name="paymentMethodType">
<option value="Предоплата 100%">Предоплата 100%</option>
<option value="Частичная предоплата">Частичная предоплата</option>
<option value="Аванс">Аванс</option>
...
JavaScript
$(function() {
$('#form_send').on('click', function (e) {
e.preventDefault();
//arrays
var result = [],
content = [],
checkClose = [];
$('.main_data input').each(function () {
let key = $(this).attr('name'),
val = $(this).val();
result.push({name:key, value:val});
});
for (let k = 0; k < $('.product_item').length; k++){
var this_product = [];
var this_payments = [];
$('.product_item[data-id='+ k +'] input, .product_item[data-id='+ k +'] select').each(function(){
var key = $(this).attr('name'),
val = $(this).val();
this_product.push({name:key, value:val});
});
$('.payment_arr input, .payment_arr select').each(function () {
var key = $(this).attr('name'),
val = $(this).val();
this_payments.push({name:key, value:val});
});
//formData.append('positions['+ i +']',this_product);
}
//add data to content(first part)
content.push({name:'type', value:$('select[name=type]').val()});
content.push({name:'positions', value:this_product});
$('.content_others input').each(function () {
let key = $(this).attr('name'),
val = $(this).val();
content.push({name:key, value:val});
});
//add data to checkClose arr
checkClose.push({name:'payments',value:this_payments});
checkClose.push({name:'taxationSystem',value:$('select[name=taxationSystem]').val()});
//add data to content(last/second part)
content.push({name:'checkClose',value:checkClose});
//merge all data from form
...