jQuery submit() не выполняется при отправке формы

Я пытаюсь запустить файл PHP, когда пользователь отправляет форму. Однако функция submit() никогда не запускается. Я прочитал много постов с предложениями по этому поводу, и ни один из них не решил проблему. Итак, у меня есть форма, которая выглядит так:

<body>
<form id="signupform">
    <div id="required">
        <table>
            Form fields
        </table>
    </div>
    <div id="notrequired">
        <table>
            More form fields
        </table>
    </div>
    <button type="Submit" name="action">Submit</button>
</form>

<script>
    $(document).ready(function() {
        $("#signupform").submit(function(e) {
            alert("Please work!");

            $.ajax({
                type    : 'POST',
                url     : 'process.php',
                data    : JSON.stringify($'signupform').serializeArray(),
                dataType: 'json'
            })

            //More code
        });
    }););
</script>
</body>

Ничто, кроме типа, не имеет значения "Отправить" в файле. Я пробовал с и без $(документ).ready(). Так что у меня практически нет идей. Какие-либо предложения.

О, это не работает ни в одном браузере.

2 ответа

Решение

В этой строке есть синтаксическая ошибка:

data    : JSON.stringify($'signupform').serializeArray(),

Вы пропустили скобки в звонке $(),

Также вы пропустили # выбрать по идентификатору, и вы можете захотеть .serialize() скорее, чем .serializeArray() Хотя, очевидно, это не синтаксическая ошибка.

Так должно быть:

data    : JSON.stringify($('#signupform').serialize()),
// add parens here -------^ ^   and here ------------^
// add # here --------------/

Также был дополнительный ); в конце вашей функции, которая должна быть удалена.

Вам не нужно JSON.stringify() или:

 data    : $('#signupform').serialize(),

И где-то (возможно, у вас это уже есть в разделе "больше кода") вы хотите остановить действие отправки формы по умолчанию:

e.preventDefault();

Добавьте этот отредактированный код в тег скрипта:

$(document).ready(function() 
{
    $("#signupform").submit(function(e) 
    {
        alert("Please work!");

        $.ajax({
            type    : 'POST',
            url     : 'process.php',
            data    : JSON.stringify($('#signupform').serializeArray()),
            dataType: 'json'
        })

        //More code
    });
});

Надеюсь это поможет.

Другие вопросы по тегам