Well you dont... need to store the state.S'what people have been telling you since the start.
Let me quote something to you....
... the default values ARE one of the states. They're the original state of the form.
<input class="services text" size="40" data-value="hair" value="hair" type="text" data-name="service0" >
^ Default value.
The current state of the form can be retrieved at the same time by reading the current
value of each form row's elements..
What you may want to do is forEach across the set of wrapper_servp classed DOM objects (
$(".wrapper_servp") ), especially since you're going to be looking into
<span> tags for some of the data (Incidentally, I'd recommend some hidden input elements to make that data more accessible.)
Your goal then, becomes essentially to be able to construct 2 arrays of objects, the original state and the current one, and find the difference between the two.
Filter the Current array such that it contains only elements that do not match an item in the Original array.
Submit that filtered array to the backend. (Alternatively, just send the whole current array to the backend and sort it out there, but that's more of a system-intensive process, because the backend does not inherently know the original state of the form.)