【问题标题】:javascript alert in an if else statement not triggeringif else 语句中的 javascript 警报未触发
【发布时间】:2013-02-08 06:02:30
【问题描述】:

如果语句的第一部分失败,我会尝试发送警报。但我无法弄清楚为什么警报没有触发。是的,我已强制声明失败。

$("#btnSubmit").click(function (e)
    {
    if (<?php echo $browser; ?> >= 1)
        {
        var user = $("#ownerPost input").val();
        var oid = <?php echo $Owner; ?>;
            $.ajax(
                    { 
                    type: 'POST', 
                    url: 'follow.php', 
                    data: "oid="+oid, 
                    dataType: 'json',
                    success: function(data)
                        {
                        var id = data[0];
                        var name = data[1];
                        $('#output2').html("<b>id: </b>"+id+"<b> name: </b>"+name);
                        } 
                    }
                    );

        $("#output").html("<b>You are now following: </b>" + user);
        e.preventDefault();
        }
        else
        {
        alert("You must log in to follow");
        }
    }
    );

这是查看源代码的输出: 实际数字是 56,这使得该陈述正确且正确。当语句为假时,它不会触发 else 并因此触发警报。 如果我在 else 之前放置一个警报,它会显示警报,因为第一部分是真的。

  $("#btnSubmit").click(function (e)
    {if (56 >= 1){
        var user = $("#ownerPost input").val();
        var oid = 56;
        $.ajax({ 
            type: 'POST', 
            url: 'follow.php', 
            data: "oid="+oid, 
            dataType: 'json',
            success: function(data){
                var id = data[0];
                var name = data[1];
                $('#output2').html("<b>id: </b>"+id+"<b> name: </b>"+name);} });
            $("#output").html("<b>You are now following: </b>" + user);
            e.preventDefault();
            }else{alert("You must log in to follow");}});

【问题讨论】:

  • $browser 的值是多少?
  • 嗯,假设你的 $browser$Owner 变量是整数,我只能认为你的 $browser 是 > = 1。否则,您可能会遇到语法错误——如果我提到的变量不是整数(或布尔值)。在你的浏览器中这是什么评估?
  • 您的牙套位置令人困惑
  • 您需要向我们展示实际输出的 javascript,而不是 php 版本。您很可能会输出不带逗号的值,从而导致失败。
  • $browser 和 $Owner 的值是整数我已经用整数替换了这两个 vars,它仍然不会触发警报。

标签: javascript alert


【解决方案1】:

我认为您有语法错误。我打算建议一个 try/catch,但这对语法错误没有帮助。请编辑您的问题并按照其他人的建议放入“视图>页面源”。另外,您可以使用 Firebug 或等效的工具来查看控制台吗?

编辑: 我确实收到此代码的警报。请注意,我将浏览器设置为 0。

blah = function(e) {
    if (0 >= 1) {
        var user = $("#ownerPost input").val();
        var oid = 56;
        $.ajax({
            type : 'POST',
            url : 'follow.php',
            data : "oid=" + oid,
            dataType : 'json',
            success : function(data) {
                var id = data[0];
                var name = data[1];
                $('#output2')
                .html("<b>id: </b>" + id + "<b> name: </b>" + name);
            }
        });
        $("#output").html("<b>You are now following: </b>" + user);
        e.preventDefault();
    } else {
        alert("You must log in to follow");
    }
};
blah.call();

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 2016-06-21
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    相关资源
    最近更新 更多