title: Backbone.js model.save() sending multiple PUT requests
body: <p>I have a backbone view that loads a model and some templates. When I submit the form in the edit template, backbone successfully sends a PUT request, just as it’s supposed to. On success, I navigate the user back to the view template.</p>
  
  <p>However, if I navigate to the edit route again and submit the form, backbone sends <em>two</em> PUT requests. It then GETs the view template. If I navigate to the edit route a third time, backbone sends <em>three</em> PUT requests. The number of PUT requests keep incrementing every time I submit the form. Why might that be?</p>
  
  <p>Here is my view:</p>
  
  <pre><code>// Filename views/users/edit.js
  /*global define:false */
  
  define([
      'jquery',
      'underscore',
      'backbone',
      'models/user/UserModel',
      'text!templates/users/edit.html',
  ], function($, _, Backbone, UserModel, UserTemplate) {
  
      var UserEdit = Backbone.View.extend({
          el: '#page',
          render: function (options) {
  
              var that = this;
  
              if (options.id) {
                  // modify existing user
                  var user = new UserModel({id: options.id});
                  user.fetch({
                      success: function (user) {
                          var template = _.template(UserTemplate, {user: user});
                          that.$el.animate({opacity: 0}, 180, function() {
                              that.$el.html(template).animate({opacity: 1}, 180);
                          });
                      }
                  });
              } else {
                  // create new user
                  var template = _.template(UserTemplate, {user: null});
                  that.$el.animate({opacity: 0}, 180, function() {
                      that.$el.html(template).animate({opacity: 1}, 180);
                  });
              }
  
          },
          events: {
              'submit #create-user-form': 'createUser'
          },
          createUser: function (e) {
              var postData = $(e.currentTarget).serializeObject();
              var user = new UserModel();
              user.save(postData, {
              success: function (user, response) {
                  Backbone.history.navigate('#/users/view/' + response, {trigger: true, replace: true});
                  }
              });
              return false;
          }
      });
  
      return UserEdit;
  
  });
  </code></pre>