开发者问题收集

在 jquery 中提交时触发 Uncaught RangeError

2017-02-02
58

我尝试使用 AJAX 发布表单,为此,我使用了 jQuery。我为此编写的代码如下:

$("#addStaffForm").on("submit", function(event) {
    event.preventDefault();

    var formPost = $.post("/medewerkers-toevoegen", {
        "_token": $("input[name=_token]"),
        "voorletters": $("input[name=voorletters]"),
        "tussenvoegsels": $("input[name=tussenvoegsels]"),
        "achternaam": $("input[name=achternaam]"),
        "gebruikersnaam": $("input[name=gebruikersnaam]"),
        "wachtwoord": $("input[name=wachtwoord]")
    });

    formPost.done(function(data) {
        console.log("data");
    });
});

很简单,但是,当我尝试实际提交表单时,我得到了这个:

Uncaught RangeError: Maximum call stack size exceeded
    at Function.type (jquery.min.js:1)

我不知道为什么会出现这个错误,我能想到的唯一解释是我创建了一个无限循环,但我似乎找不到。

为什么这么小、这么简单的代码不能像我希望的那样工作?

谢谢

2个回答

找到答案了!我忘了其实我发送的是整个 jquery 元素,而不是输入值。

$("#addStaffForm").submit(function(e) {
        e.preventDefault();
        var token = $("input[name=_token]").val();
        var voorletters = $("input[name=voorletters]").val();
        var tussenvoegsels = $("input[name=tussenvoegsels]").val();
        var achternaam = $("input[name=achternaam]").val();
        var gebruikersnaam = $("input[name=gebruikersnaam]").val();
        var wachtwoord = $("input[name=token]").val();


        $.post("/medewerkers-toevoegen", {
            "_token": token,
            "voorletters": voorletters,
            "tussenvoegsels": tussenvoegsels,
            "achternaam": achternaam,
            "gebruikersnaam": gebruikersnaam,
            "wachtwoord": wachtwoord
        }, function(data) {
            console.log(data);
        }, function(data) {
            console.log(data);
        });
    });

对我有用!

sushibrain
2017-02-02

你应该试试这个

  var params = {
        "_token": $("input[name=_token]").val(),
        "voorletters": $("input[name=voorletters]").val(),
        "tussenvoegsels": $("input[name=tussenvoegsels]").val(),
        "achternaam": $("input[name=achternaam]").val(),
        "gebruikersnaam": $("input[name=gebruikersnaam]").val(),
        "wachtwoord": $("input[name=wachtwoord]").val()
  }
  var formPost = $.post("/medewerkers-toevoegen", params);
Manoj
2017-02-02