BackboneJS,保存方法被激发两次

piv4azn7  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(128)

我有一个应用程序,其中我不使用 Backbone 视图,只有 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 始终等于被持久化或更新的模型属性之一。

ulydmbyx

ulydmbyx1#

问题是我同时使用了一个验证表单的插件。所以每次我改变输入值时,都会有一个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()
  });
});

相关问题