href链接jquery ajax表单不会发送数据

时间:2014-08-28 21:12:13

标签: jquery ajax

我现在已经玩了好几个小时了,无法理解。

我有一个页面 signup.php ,其表单由ajax处理。如果我要将此页面设为主页并填写表单,则可以在ajax脚本中调用url: register.php ,但如果我访问此页面我的主要 index.php 页面中的 signup.php 页面通过href链接打破了ajax。表格不起作用。为什么呢?

以下是我的代码(截断相关性)

index.php 此页面包含指向 注册页面 的链接。

 <div data-role="page" data-theme="a">
        <div data-role="header" data-position="inline">
            <h1>Carelincs</h1>
        </div>

        <div data-role="content" data-theme="a">
        <p>My main page content</p>

        <a href="../views/signup.php">Register</a>

        </div>
</div>

HRE

注册页面,其中包含表单和ajax

signup.php

<body>
    <script>        
        $(document).ready(function () {
            $("#submit").click(function () {

                var formData = $("#register").serializeArray();

                $.ajax({
                    type: "POST",
                    url: "../pages/register.php",
                    cache: false,
                    data: formData,
                    success: onSuccess,

                });

                return false;
            });
        });


        function onSuccess(data, status) {

            data = $.trim(data);
            $("#message").text(data);
        }

        function onError(data, status) {
            data = $.trim(data);
            $("#message").text(data);
        }
    </script>
        <div data-role="page" data-theme="a">
            <div data-role="header" data-position="inline">
                    <h1>Carelincs</h1>

            </div>
            <div data-role="content" data-theme="a">
                <form action="" method="POST" id="register">
                    <input type="text" name="username" placeholder="Username" />
                    <br />
                    <input type="password" name="password" placeholder="Password" />
                    <br />
                    <input type="checkbox" name="chekbox-mini-0" id="checkbox-mini-0" data-mini="true" />
                    <label for="checkbox-mini-0">Remember me</label>
                    <br />  <a href="../views/forogotpswd">Forgot Password</a>

                    <button type="submit" id="submit">Submit</button>
                </form> <a href="../views/signup.php">Register</a>

                <p id="message"></p>
            </div>
        </div>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

经过数小时的研究和游戏,我发现问题和解决方案归功于@ guest271314的提示。

<a href="../views/signup.php">Register</a>触发了ajax并搞砸了表单,而我所要做的就是将其更改为

<a href="../views/signup.php" rel="external">Register</a> 

我添加了rel=external和中提琴,禁用了链接的ajax,我的表单正常工作。