I am working on MVC application with Backbone.js.
Assuming, I have a View of User details:-
var userDetailsView = Backbone.View.extend({
    model: userModel,
    el: "#userDteails",
    template: Handlebars.templtas.userDetails
    initialize: function () {
        this.model = new userModel();
        this.model.fetch({
            success: function (data) {
                this.render();
            }
        });
    },
    render: function () {
        $(this.el).html(this.template());
    },
    events: {
        "", "saveUserDetails" //event for save
    },
    saveUserDetails: function () {
        //How do I get the update value of FirstName??
    }
});
Now, in similar line I have a handlebar template which deals with edit details of User Model.
<div id="userDetails">
  <input type="text" value="{{FirstName}}" id="firstName"/>
 </div>
Please ignore the code mistakes as its just a dummy code, now if I need to save the user details(say for eg. FirstName). Then how do I get the updated value?
Should it be:-
saveUserDetails: function () {
        //How do I get the update value of FirstName??
        this.model.set("", $('#Firstname').val());
    }
or should I follow converting form data to JSON, and update my this.model i.e create my HTML markup with name attribute:-
<form>
    First Name:<input type="text" name="Fname" maxlength="12" size="12"/> <br/>
</form>
and use the function suggested by Tobias Cohen
$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};
and do :-
$('form').submit(function() {
        $('#result').text(JSON.stringify($('form').serializeObject()));
        return false;
    });
I am not an expert in Backbone, but have seen at-least 10-15 samples and tutorials which teach backbone. Out of those I found the above two way to do it.
Please let me know, what would be best way to proceed.
 
     
    