JavaScript如果else语句不起作用

时间:2012-01-29 18:45:20

标签: javascript jquery

我对我的无线电按钮形式的if else声明有问题。您可以在此处查看:http://jsfiddle.net/UDGGS/20/

Jquery的:

$(document).ready(function() {

    $("input").click(function() {
        $check = true;
    });

    $("#next1").click(function() {
        if ($check) {
            $("boks1").hide();
            $("boks2").show();
        } else {
            alert('Pick one');
        }
    });

});

HTML:

<div id="boks1">
<h1>What would you like to answer? </h1>
<input type="radio" name="group1" value="0">Answer 1<br>
<input type="radio" name="group1" value="1">Answer 2<br>
<input type="radio" name="group1" value="2">Answer 3<br>
<div id="next1" style="border:1px solid black;">Next question<div>
</div>
<div id="boks2">
<h1>What would you like NOT to answer? </h1>
<input type="radio" name="group2" value="0">Answer 1<br>
<input type="radio" name="group2" value="1">Answer 2<br>
<input type="radio" name="group2" value="2">Answer 3<br>
<div id="next2">Next question 3<div>
</div>

CSS:

#boks2 {display:none;}
#next1 {display:block;}

当我点击下一个并且没有选择单选按钮时,为什么没有引发警报?当我选择一个并点击下一个div时,为什么我没有显示下一个问题。

3 个答案:

答案 0 :(得分:2)

问题在于您错过了#选择器中的id

$("#boks1").hide();
$("#boks2").show();

但是,您应该在两个函数的父作用域中声明$check变量(因此在ready事件处理程序中):

$(document).ready(function() {
    var $check = false;
});

否则,如果在选择单选按钮之前单击“下一步”按钮,则不会定义$check。当它确实被定义时,它在全球范围内,这不是一件好事。

答案 1 :(得分:2)

定义变量,然后在单击输入时将其设置为true。

$(document).ready(function() {

    var = $check;

        $("input").click(function() {
            $check = true;
        });

        $("#next1").click(function() {
            if ($check) {
                $("#boks1").hide();
                $("#boks2").show();
            } else {
                alert('Pick one');
            }
        });

    });

答案 2 :(得分:1)

在外部范围中定义变量。还有if`` block are missing#`中的ids选择器。试试这个。

$(document).ready(function() {

    var $check; 
    $("input").click(function() {
        $check = true;
    });

    $("#next1").click(function() {
        if ($check) {
            $("#boks1").hide();
            $("#boks2").show();
        } else {
            alert('Pick one');
        }
    });

});

<强> Demo

不是使用变量来查找是否选中了单选按钮,而是可以执行此操作。

注意:我正在使用$("input:checked").length > 0查看是否使用:checked选择器选中了任何单选按钮。

$(document).ready(function() {
    $("#next1").click(function() {
        if ($("input:checked").length > 0) {
            $("#boks1").hide();
            $("#boks2").show();
        } else {
            alert('Pick one');
        }
    });
});

<强> Demo