提交表单时jQuery submit()不执行

时间:2014-04-05 00:20:30

标签: jquery html forms validation submit-button

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

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

哦,它不能在任何浏览器上运行。

2 个答案:

答案 0 :(得分: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(),

在某个地方(也许你已经在你的&#34;更多代码&#34;部分中已经有了这个)你想要停止默认表单提交动作:

e.preventDefault();

答案 1 :(得分: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
    });
});

希望这有帮助。