Почему форма никогда не отправляется с Jquery? - PullRequest
0 голосов
/ 23 марта 2020

Моя форма -

<form id="dataForm">

</form>

кнопка, на которую нажимают, -

<button id="btnAddSave" type="button">
    ButtonText
</button>

, а Jquery используется

$(document).ready(function () {
    $("#btnAddSave").click(function () {
        alert("1");
        $("#dataForm").submit(function (e) {
            alert("2");
            e.preventDefault();
            var form = $(this);

            var url = "/save";

            $.ajax({
                type: "POST",
                url: url,
                data: form.serialize(),
                success: function (data) {
                    alert(data);
                }
            });
        });
    })
});

В приведенном выше примере отображается первое предупреждение, но не второе. Что здесь происходит не так? Как я могу это исправить?

Ответы [ 3 ]

3 голосов
/ 23 марта 2020

Почему вы связываете два обработчика событий друг с другом? Go с .click или .submit, нет необходимости в обоих. Сам код должен работать.

1 голос
/ 23 марта 2020

Как я уже упоминал в комментарии, это рабочий пример:

$(document).ready(function () {
    $("#btnAddSave").click(function () {
        alert("1");
            alert("2");
            e.preventDefault();
            var form = $("#dataForm").serialize();

            var url = "/save";

            $.ajax({
                type: "POST",
                url: url,
                data: form,
                success: function (data) {
                    alert(data);
                }
            });
    })
});
0 голосов
/ 23 марта 2020

Как обсуждалось в комментариях, обработчик отправки не запускается, потому что он подключается при срабатывании обработчика щелчка. Вы можете просто удалить весь код отправки как таковой:

$(document).ready(function () {
    $("#btnAddSave").click(function () {
        alert("1");
        alert("2");

        // e.preventDefault(); -> this does nothinng for a button type button
        var form = $("#dataForm");

        var url = "/save";

        $.ajax({
            type: "POST",
            url: url,
            data: form.serialize(),
            success: function (data) {
                alert(data);
            }
        });
    })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...