函数调用后脚本抛出递归错误

时间:2018-09-04 09:08:06

标签: javascript jquery

我有一个脚本,该脚本将表单发送到控制器方法,并且试图将其发送为POST请求,但出现“太多递归”错误。这是代码:

var modalConfirm = function(callback) {
  $("#modal-btn-si").on("click", function() {
    callback(true);
    $("#modal-confirm").modal('hide');
  });
  $("#modal-btn-no").on("click", function() {
    callback(false);
    $("#modal-confirm").modal('hide');
  });
};

function confirmar(form, text) {
  $("#modal-confirm").modal('show');
  modalConfirm(function(confirm) {
    if (confirm) {
      $.post("NuevaOpcion", {
        data: $('#' + form)
      });
    }
  });
};

我修改的行是

$.post("NuevaOpcion",{ data: $('#' + form) });

添加$.post()后,我得到了:

too much recursion[Saber más] jquery-3.3.1.js:8423:24

我很迷茫,不知道我是怎么犯这样的错误的。预先感谢。

1 个答案:

答案 0 :(得分:1)

为什么所有代码​​? 这应该起作用

您还需要序列化表格

var currentForm;
$("#modal-btn-si").on("click", function() {
  $.post("NuevaOpcion", {
    data: $('#' + currentForm).serialize()
  });
  $("#modal-confirm").modal('hide');
});
$("#modal-btn-no").on("click", function() {
  $("#modal-confirm").modal('hide');
});

function confirmar(form, text) {
  currentForm = form;
  $("#modal-confirm").modal('show');
};

如果只有一种形式,请删除全局变量并使用ID

data: $('#actualID').serialize()