BackboneJS,保存方法被触发两次

时间:2019-01-15 13:38:16

标签: backbone.js backbone-model

我有一个不使用Backbone Views的应用程序,仅使用Backbone模型。

结构如下。

#html
<tr>
  <td >Personal</td>
  <td id="personal-data" data-content="<?=str_replace('"',"'",json_encode($data))?>">
     <input type="text" name="name" placeholder="Name"><br>
     <input type="text" name="address" placeholder="Address">
  </td>
<tr>
#PersonalModel.js
var Personal = Backbone.Model.extend({
   urlRoot: "/api/personal"
});
$(document).ready(function () {
  var personal = new Personal($('td#personal-data').data('content'));
  $('td#data-ept *').on('change', function () {
    personal.set(this.name, this.value);
    personal.save()

  });
});

this.name始终等于要保留或更新的模型属性之一。

1 个答案:

答案 0 :(得分:0)

问题是我也正在使用正在验证表单的插件。因此,每次我更改输入值时,都会有一个div在变化。我用这段代码解决了问题

$(document).ready(function () {
  var personal = new Personal($('td#personal-data').data('content'));
  $('td#data-ept *[name]').on('change', function () {
    personal.set(this.name, this.value);
    personal.save()
  });
});