Javascript中的Switch语句不是切换

时间:2015-09-15 20:20:01

标签: javascript switch-statement

这个switch语句出了什么问题?我将从选择菜单中选择此值,其中选项/值为1或2.输入字段仅显示" 1"什么时候应该是" $ 1500"

Modified code is on codepen

3 个答案:

答案 0 :(得分:0)

从输入中检索值时,会得到字符串,即“1”或“2”。 因此,您必须将其解析为整数或浮点数:

替换:

var cost = this.value;

使用:

var cost = parseInt(this.value, 10);

另一个解决方案是在switch / case中枚举字符串,因为它已经指出:

switch(cost){
    case '1':
        cost = "$1500";
        break;
    case '2':
        cost = "$2500";
        break;
    default:
        break;
}

顺便说一下习惯在switch语句中写一个默认情况

答案 1 :(得分:0)

switch语句根据MDN使用严格比较

为了适当使用,我建议在这种情况下使用字符串。

答案 2 :(得分:0)

在案例陈述中使用字符串 - https://jsfiddle.net/3ujg7kr8/

$('[name="costfield"]').change(function(){
    var cost = this.value;

    switch(cost){
        case '1':
            cost = "$1500";
            break;
        case '2':
            cost = "$2500";
            break;

    }

    $('#exampleInputEstimate1').val(cost);
});