【问题标题】:An AJAX method I am trying to use is disabling another jQuery method我尝试使用的 AJAX 方法正在禁用另一个 jQuery 方法
【发布时间】:2013-05-10 18:25:39
【问题描述】:

这块 AJAX

            $('input#adminLogin').on('submit', function() {
                var username = $('#username').val();
                var password = $('#password').val();
                if (username == '' || password == '')
                    $('#errForm').fadeIn(200).text('You must enter a username and password');
                else {
                    $.ajax ({
                        type: 'post',
                        url: '/classes/login/Authenticator.php',
                        data: $('#login_form').serialize(),
                        cache: false,
                        success: function(data) {
                            if(data == 'You entered an invalid username or password');
                                $('.actionDiv').fadeIn(200).html(data);
                            else
                                $('.fade_bg').fadeOut(200);
                        }
                    });
                }
            });

正在制作这个 jQuery

$('a#aLogin').on('click', function (e) {
    e.preventDefault();
    $('.fade_bg').fadeIn(200);
    $('a#aLogin').hide();
});

不管我在 AJAX 方法中是否有 e.preventDefault() 都不起作用。怎么会?

HTML

<div class="fade_bg">
        <div class="actionDiv">
            <span id="errForm"></span>
            <form id="login_form" action="./classes/login/Authenticator.php" method="post">
                <p>username: <input type="text" name="username" id="username" /></p>
                <p>password: <input type="password" name="password" id="password" /></p>
                <p><input type="submit" name="adminLogin" value="Log in" id="adminLogin" /></p>
            </form>
            <p><a id="cancelLogin" href="">Cancel</a></p>
        </div>
        <div id="topRight">
                <a id="aLogin" href="">Admin login</a>
                <form id="exit" action="./classes/login/ExitDoor.php" method="post">
                    <p>
                    <?php
                        if ($_SESSION['logged-in'] == 1)
                            print '<span id="greeting">Welcome, ' . $_SESSION['firstName'] . ' | </span>';
                    ?>
                    <input id="aLogout" type="submit" name="adminLogout" value="Log out" />
                    </p>
                </form>
            </div>

【问题讨论】:

  • a#aLogin 是什么?你可以显示你的html。
  • 我看不到 ID 为 aLogin&lt;a&gt;
  • 我忘了剪掉剩下的部分
  • 您是否尝试在.on('submit', function() { 末尾添加return false;
  • 我做到了。没用。我试着把它放在开头和结尾。

标签: php jquery ajax preventdefault


【解决方案1】:

您的第一个 sn-p 中有语法错误。这就是第二个不再执行的原因。

去掉这一行末尾的分号

if(data == 'You entered an invalid username or password'); <--

所有主流浏览器都内置了开发者工具。通过查看开发者控制台,您可以很快找到此类错误。

在您的示例中,chrome 控制台会向您显示 - http://i43.tinypic.com/xqg48.jpg

【讨论】:

    猜你喜欢
    • 2020-08-02
    • 2014-03-02
    • 1970-01-01
    • 2018-11-07
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    相关资源
    最近更新 更多