Javascript中的Switch语句没有切换

Javascript中的Switch语句没有切换,javascript,switch-statement,Javascript,Switch Statement,这个switch语句有什么问题?我将从选择菜单中选择该值,选项/值为1或2。当输入字段应该是1500美元时,它只显示1 $('[name="costfield"]').change(function(){ var cost = this.value; switch(cost){ case 1: cost = "$1500"; break; case 2: cost = "$25

这个switch语句有什么问题?我将从选择菜单中选择该值,选项/值为1或2。当输入字段应该是1500美元时,它只显示1

$('[name="costfield"]').change(function(){
    var cost = this.value;
    switch(cost){
        case 1:
            cost = "$1500";
            break;
        case 2:
            cost = "$2500";
            break;

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

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

替换:

var cost = this.value;
与:

另一种解决方案是枚举switch/case中的字符串,正如前面所指出的:

switch(cost){
    case '1':
        cost = "$1500";
        break;
    case '2':
        cost = "$2500";
        break;
    default:
        break;
}
顺便说一句,养成在switch语句中编写默认大小写的习惯。switch语句根据需要使用严格的比较


为了正确使用,我建议在本例中使用字符串。

在case语句中使用字符串-

您是否尝试调试成本变量以检查其值?
switch(cost){
    case '1':
        cost = "$1500";
        break;
    case '2':
        cost = "$2500";
        break;
    default:
        break;
}
$('[name="costfield"]').change(function(){
    var cost = this.value;

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

    }

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