You can try the following:
Have the <On Change> in each display element, set some data element in the view (call it Row Id) with the number of the row in which the change occured.
In addition <On Click> on the row, would check the Row Id data element, and if it found an id different than its own, it would save that row's data, and then clear the Row Id.
This works for saving when switching from one row to another, or to other display elements in the view (as long as those elements also have the <On Click> process implemented), but it does not work for when leaving the view all together.
A semi-solution to that would be to have <On Change> give a visual indication that there's a change which has not been saved (which the row's <On Click> would also clear) + a Save button for optional use.
For best results, use the Firefox browser..