Switch语句自动执行案例而不满足案例要求?

时间:2014-06-03 03:09:54

标签: javascript switch-statement case

我做了这个switch语句,它开始工作,直到我开始添加更多代码..看看:

var txt;
var begin = 'Some text';
var briefBegin = 'Some text';
var started = false; 
var Input = function () {

    switch (true) {
    case 'start' && !started:
        txt = begin;
        started = true;
        break;

    case 'start brief' && !started:
        txt = bbegin;
        started = true;
        break;

    default:
        txt = "Some text."
    }
    $('.output1').text(txt);
};

然后我把它叫到了......

var teext;
$(".submit").click(function() {
    teext = $('.inputt').val();
    Input(teext);
    console.log(teext);
});
$(".inputt").keyup(function(event){
    if(event.keyCode == 13){
        $(".submit").click();
    }
});

因此,每当我在输入字段(在“.inputt”类下)输入内容时,无论是否适合大小写,它都会自动从上到下打印每个案例。任何帮助将不胜感激:D谢谢

2 个答案:

答案 0 :(得分:0)

case 'start' && !started:

表达式'start' && !started的计算结果为!started,因为'start'始终是真实的。

switch块只能切换单个表达式的值;你的代码无法正常工作。

答案 1 :(得分:0)

我怀疑这就是你想要的。它将它给出的参数与case语句中的字符串进行比较。

var Input = function (text) {

    switch (true) {
    case text == 'start' && !started:
        txt = begin;
        started = true;
        break;

    case text == 'start brief' && !started:
        txt = bbegin;
        started = true;
        break;

    default:
        txt = "Some text."
    }
    $('.output1').text(txt);
};