One option is to add a function per model view that checks if any of the fields have been modified and then save itself if it is the case.
So in your timesheet view you would add a function like
'reconcilliate' : function () {
if(this->$el->find('#punch_date').val() != this.model.get('punchdate')){
//data has changed
}
}Alternatively you can try the set method and just pass all the data at once, I'm not sure if it will trigger an update or not.
You can try it :) ( this.model.set() )
after you know if it has been changed or not you can save the individual models ( this.model.save() )
A better option would be to just submit all the data altogether (this could save on overall trips to the server at the cost of a potentially bigger transfer) and then just re-fetch the collection
You could either post the data with a form-tag, or optionally using standard jQuery
this method is not really backbone-esque but it does have an advantage when you are dealing with these kind of edits. The reason to use a backbone approach is to keep the data synced with the view, but here the view is a textbox and the data is already up to date. Usually you might be worried because if someone closes the page what they see is not what is actually in the DB. but with text fields it's not really worry because people understand text boxes are not static.
I would personally go with the second option based on what I have heard so far, considering the data is always in text fields