0

当用户提交表单时,我正在尝试运行 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>

除了类型之外,文件中没有任何内容具有“提交”值。我已经尝试过使用和不使用 $(document).ready()。所以我几乎没有想法。有什么建议么。

哦,它不适用于任何浏览器。

4

2 回答 2

0

在你的脚本标签中添加这个编辑过的代码:

$(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
    });
});

希望这可以帮助。

于 2014-04-05T00:32:59.463 回答
0

此行存在语法错误:

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

您错过了对 的调用中的括号$()

此外,您还错过了#按 id 选择的选项,并且您可能想要.serialize()而不是.serializeArray(),尽管显然这实际上并不是语法错误。

它应该是:

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

);在你的函数末尾还有一个额外的东西应该被删除。

你真的不需要JSON.stringify()

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

在某个地方(也许你已经在你的“更多代码”部分有这个)你想停止默认的表单提交操作:

e.preventDefault();
于 2014-04-05T00:28:23.793 回答