表格序列化不包含表格

时间:2018-10-11 16:57:54

标签: javascript jquery

我具有此功能来检查表单中的某些内容是否已更改,显然可以正常工作:

$(function() {
  var init_form = $('#editarproduto').serialize();

  $(':submit').click(function() {
    window.onbeforeunload = null;
  });

  window.onbeforeunload = function() {
    var check_form = $('#editarproduto').serialize();
    console.log(check_form);
    console.log(init_form);
    if (check_form === init_form) 
      return null;

    return 'Os dados do formulário não foram salvos, deseja permanecer nesta página?';
  };
});

但是他提出了需要检查表的想法,如果其中隐藏了某些内容,则不会对表进行更改:

<table class="table table-responsive table-hover" id="tabelaf" name="tabelaf">
  <tbody>
    @foreach (var item in Model.ProdutosFornecedores) {
      <tr class="tr item">
        <td>@item.FornecedorProduto.Id</td>
        <td>@item.FornecedorProduto.Nome</td>
        <td align="right">
          <a class="link-excluir" href="#" data-id="@item.Id" title="Excluir"><i class="fa fa-trash-o fa-lg"></i></a>&nbsp;
        </td>
      </tr>
    }
  </tbody>
</table>

您也如何将它与此表进行比较?

1 个答案:

答案 0 :(得分:1)

您的序列化仅从表单元素获取数据。您可以将隐藏的输入添加到列中,以将该数据包括在表单中:

<td>
  @item.FornecedorProduto.Id
  <input type="hidden" name="id" value="@item.FornecedorProduto.Id" />
</td>

请注意,此表应放置在表单内