Показать сообщение отдельно
  #9 (permalink)  
Старый 08.06.2021, 14:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от nastya97core
Нужно, чтобы при сохранении создавался массив только изменённых
Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="https://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<style>
table {
   border-collapse: collapse;
}

td {
   border: 1px solid grey;
   min-width: 10vw;
       padding: 10px;
}

input {
  border:none;
  border-bottom:1px solid black;
}
</style>

<script>
$(function() {
	$('input, select').on('change', function() {
		const o = $(this)
		o.addClass('on')
		o.parents().parent().addClass('on')
	})
	$('#test').on('submit', function() {
		let a = []
		$('#data > tbody > tr.on').each(function() {
			let obj = {}
			const o = $(this)
			const id = o.find('td:first-child').text()
			obj.id = id
			o.find('.on').each(function() {
				obj[this.name] = this.value
			})
			a.push(obj)
		})
		alert(JSON.stringify(a))
		return false
	})
})
</script>
</head>
<body>
<form id='test'>
<table id='data'>
  <thead>
  <tr>
    <td>id</td>
    <td>Стоимость</td>
    <td>Инфо</td>
    <td>Статус</td>
  </tr>
  </thead>
  <tbody>
  <tr>
    <td>a1</td>
    <td><input type="text" name='sum' value="123"></td>
    <td><input type="text" name='info' value="перезвонить"></td>
    <td><select name='status'>
        <option value="value1" selected>В обработке</option>
        <option value="value2">Завершен</option>
        <option value="value3">Невозможен</option>
      </select></td>
  </tr>
  <tr>
    <td>a2</td>
    <td><input type="text" name='sum' value="1413"></td>
    <td><input type="text" name='info'></td>
    <td><select name='status'>
        <option value="value1">В обработке</option>
        <option value="value2" selected>Завершен</option>
        <option value="value3">Невозможен</option>
      </select></td>
  </tr>
  <tr>
    <td>a3</td>
    <td><input type="text" name='sum' value="222"></td>
    <td><input type="text" name='info'></td>
    <td><select name='status'>
        <option value="value1" selected>В обработке</option>
        <option value="value2">Завершен</option>
        <option value="value3">Невозможен</option>
      </select></td>
  </tr>
  </tbody>
</table>

<button>Сохранить</button>
</form>

</body>
</html>

Последний раз редактировалось ksa, 08.06.2021 в 18:49.
Ответить с цитированием