使用jquery数据表添加行时 - 它多次添加一行。不只是一次

时间:2018-01-24 19:52:04

标签: javascript jquery

我正在使用jquery通过ajax将数据发送到我的数据库,成功时会显示​​通知,并使用用户刚刚发布的注释/信息向数据表添加一行。

出于某种原因,它将行添加两次,而不是仅添加一次。不知道为什么。

我的代码是:

<script type="text/javascript">
    $(document).ready(function() {
        $('#notestable').DataTable({
            "paging": false,
            "ordering": false,
            "info": false,
            "filter": false
        });    

    $("#addnote").click(function(e) {
      e.preventDefault();
      var note = $("#note1").val();
      var leadid = "<?echo $lead->leadid;?>";
      $.ajax({
        url: "/leads/addnote",
        method: "POST",
        data: {
          note: note,
          leadid: leadid
        },
        success: function(data) {
          $('#closemodal12').trigger('click');
          swal({
            title: "Note added",
            type: "success",
          });

          var notestable1 = $('#notestable').DataTable();

          var lengthToCut = 23;
          var short = note.substr(0, lengthToCut);
          var i = 1;
          var row = $('<tr>');
          row.append('<td>' + short + ' </td>')
            .append('<td><? echo $user->forename;?></td>')
            .append('<td><? echo date('d / m / Y ');?> </td>')
            .append('<td><? echo date('H: i ');?> </td>')
            .append('<td><i class ="fa fa-eye"> </i></td>')
            .append('<td><i class ="fa fa-trash-o"> </i></td>')
          notestable1.row.add(row);
          $('#notestable tbody').prepend(row);



        },
        error: function() {
          alert("Slight problem");
        }
      });
    });
  });

</script>

1 个答案:

答案 0 :(得分:1)

如果没有看到随之而来的标记,很难确定,但我相信问题在于这两行代码:

// Append row to notestable1 (already visible in DOM)
notestable1.row.add(row);

// (pre)Append the row again
$('#notestable tbody').prepend(row);

notestable1似乎是一个已插入DOM的有效对象,您将该行附加到该行。然后使用$('#notestable tbody').prepend(row)再次追加该行。