0

我正在尝试使用 input type="number" 并一起切换。当我在输入字段中写下数字 2(或其他数字)并按下按钮时,我希望得到输出“某物 2”,但我得到“未定义”。

请参阅我的 html 代码:

<body>
<form>
    <input type="number" id="entr">
    <input type="button" onclick="func()" value="go">
</form>
<p5 id="demo"></p5>

对于 js:

function func() {
var x;
var a = document.getElementById("entr").value;
switch (a) {
    case 0:
          x = "something 0";  
        break;
    case 1:
          x = "something 1";  
        break;
    case 2:
          x = "something 2";  
        break;
    case 3:
          x = "something 3";  
        break;

}
document.getElementById("demo").innerHTML = x;

}

当我在开关中使用默认值时,它会执行该代码块,但不会执行任何一个 oder 代码。谢谢你的回答

4

2 回答 2

2

虽然您的输入类型是“数字”,但 Javascript 默认仍将其视为字符串。(请注意,您可以在输入字段中输入任意文本。)您有两个选择:您可以打开字符串值...

    switch (a) {
        case "0":
              x = "something 0";  
            break;
        case "1":
              x = "something 1";  
            break;
        case "2":
              x = "something 2";  
            break;
        case "3":
              x = "something 3";  
            break;

    }

这行得通,但最好将输入字符串解析为数字......

    var a = parseInt(document.getElementById("entr").value);

一元 + 运算符也可以工作,但不如parseInt函数健壮...

    var a = +document.getElementById("entr").value;
于 2013-11-11T22:54:33.010 回答
1

改变

var a = document.getElementById("entr").value;

var a = parseInt(document.getElementById("entr").value, 10);
于 2013-11-11T22:54:18.900 回答