【问题标题】:Jquery doesn't post for some reasonJquery由于某种原因没有发布
【发布时间】:2010-05-09 00:52:35
【问题描述】:

我写了这个小页面,由于某种原因,当我点击提交时没有任何反应(在萤火虫上检查,没有提交发生)

<head>
    <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
    <script type="text/javascript">

        $('form#login').submit(function() {
            $.ajax({
                type: 'POST',
                url: 'http://my.site/login.php',
                data: this.html(data),
                success: success,
                dataType: dataType
            })

        });






    </script>
</head>
<body>
    <form action="#" id="login">
        <input type="textbox" id="UserName" value="user">
        <input type="textbox" id="Password" value="password">
        <input type="submit" value="submit">
    </form>
</body>

【问题讨论】:

  • 您应该从提交处理程序返回false 以避免跳转。 (如果您将 HTML 中的操作 URL 更改为真实链接,为了避免提交两次,如果您希望表单在没有 javascript 的情况下工作,您应该这样做。)并且$.post 更易于使用 - $.ajax 是手- 精心制作的 AJAX 查询,您很少需要它。

标签: jquery post


【解决方案1】:

您需要包装您的代码以在document.ready 上运行,如下所示:

$(function() {
    $('form#login').submit(function() {
        $.ajax({
            type: 'POST',
            url: 'http://my.site/login.php',
            data: this.html(data),
            success: success,
            dataType: dataType
        })

    });
});

目前$('form#login') 在表单出现在页面之前运行,因此它没有找到任何可以挂钩该提交处理程序的东西,使其等待运行直到document.ready 解决此问题。至于为什么您在 firebug 中看不到任何事情发生,您的 default 表单操作当前正在发生,提交到#,例如无处可去...所以萤火虫看不到流量。

【讨论】:

    猜你喜欢
    • 2021-04-13
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    相关资源
    最近更新 更多