.change {
background-color: #FFA5A5;
}
<table id="data">
<tr><td><input data-val="abcd" name="data[11][name]" value="abcd" /></td><td><input data-val="5" name="data[11][range]" value="5" /></td></tr>
<tr><td><input data-val="qwer" name="data[22][name]" value="qwer" /></td><td><input data-val="8" name="data[22][range]" value="8" /></td></tr>
</table>
<button id="send">Update</button>
var tbl = $('#data').on('input', 'input', function() {
this.classList.toggle('change', this.dataset.val != this.value.trim())
});
$('#send').click(function() {
var o = tbl.find('input.change');
if(o.length) {
o = o.map(function() {
return {[this.name]: this.value}
})
console.log(o)
//$.ajax()
}
});
Примерно так, если сравнивать и отправлять только измененные.