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

问题描述 投票:-2回答:1

我有一个脚本将表单发送到控制器方法,我试图使它成为一个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

我很迷茫,不知道我是怎么犯这样的错误的。提前致谢。

javascript jquery
1个回答
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()
© www.soinside.com 2019 - 2024. All rights reserved.