可能是代码中的愚蠢错误

时间:2011-04-10 20:21:32

标签: javascript jquery

这段代码完美运作的原因是什么:

<script type="text/javascript">
        $(document).ready(function() {
            $("#login_form").submit(function() {
                $.post("ajax_login.php", {
                    nam: $('#nam').val(),
                    mPassword: $('#mPassword').val()
                }, function(data) {
                    if (data == 'yes') {
                        $("#msgbox").fadeTo(200, 0.1, function() {
                            $(this).html('Log').addClass('messageboxok').fadeTo(900, 1, function() {
                                document.location = 'secure.php';
                            });
                        });
                    } else {
                        $("#msgbox").fadeTo(200, 0.1, function() {
                            $(this).html('Login inválido').addClass('messageboxerror').fadeTo(900, 1);
                        });
                    }
                });
                return false;
            });
        });
    </script>

这个代码不起作用? (没有显示任何消息)它有任何错误吗?

<script type="text/javascript">
    $(document).ready(function() {
        $("#login_form").submit(function() {
            $.post("ajax_login.php", {
                nam: $('#nam').val(),
                mPassword: $('#mPassword').val()
            }, function(data) {
                if (data == 'yes') {
                    $("#msgbox").fadeTo(200, 0.1, function() {
                        $(this).html('Log').addClass('messageboxerror').fadeTo(900, 1);
                    });
                } else {
                    $("#msgbox").fadeTo(200, 0.1, function() {
                        $(this).html('Logging in.....').addClass('messageboxok').fadeTo(900, 1, function() {
                            document.location = 'secure.php';
                        });
                    });
                }
            });
            return false;
        });

    });
</script>

编辑:两个脚本工作

问题与第二个例子有关。问题是什么?

2 个答案:

答案 0 :(得分:5)

在我看来,您过早地关闭了第二个代码示例中的if语句。现在看来else适用于function而非if

编辑:代码中的某些位置似乎仍然存在问题(即第二个代码中的return false语句)。试试这个:

<script type="text/javascript">
    $(document).ready(function() {
        $("#login_form").submit(function() {
            $.post("ajax_login.php", {
                nam: $('#nam').val(),
                mPassword: $('#mPassword').val()
            }, function(data) {
                if (data == 'yes') {
                    $("#msgbox").fadeTo(200, 0.1, function() {
                        $(this).html('Log').addClass('messageboxerror').fadeTo(900, 1);
                    });
                } else {
                    $("#msgbox").fadeTo(200, 0.1, function() {
                        $(this).html('Logging in.....').addClass('messageboxok').fadeTo(900, 1, function() {
                            document.location = 'secure.php';
                        }); 
                    });
                }
            });
            return false;
        });
    });
</script>

答案 1 :(得分:3)

在第二个功能中:

function(data) {
  ...
} else {
  ...
}

您不能在函数上使用else子句。看来你在错误的地方有一些结尾括号。