为什么我的Javascript Switch Case不起作用?

时间:2014-07-14 20:32:05

标签: javascript switch-statement case

使用JSfiddle解释器时,按钮和输入字段显示在“结果”框中,但似乎没有对脚本的任何响应。我尝试过其他解释器,例如W3School的解释器,虽然它确实给我一个指示函数实际上被调用,结果似乎只是默认情况,甚至只出现了一小段时间在整个字段与按钮和输入消失之前(值得注意的是我输入的文本没有出现在段落中,并且'fruitT'似乎被忽略 - 所以很可能在输入之间传递信息存在问题字段,按钮和功能。)

这个逻辑看起来非常简单,我看了其他的例子 - 但我是JS的新手,所以我可能忽略了一些语法。希望有人能给我一个正确的方向。谢谢!

<!DOCTYPE html>
<html>

<body>
    <form action="#">
        <input id="fruit">
            <button onclick="myFunc('fruit')">Enter</button>
    </form>
        <p id="here"></p>

<script>
function myFunc(fruitT){
  switch (fruitT){
   case "Oranges":
       document.getElementById("here").innerHTML = ("Oranges are $0.59 a pound.");
      break;
   case "Apples":
       document.getElementById("here").innerHTML = ("Apples are $0.32 a pound.<br>");
      break;
   default:
      document.getElementById("here").innerHTML = ("Sorry, we are out of " + fruitT + ".<br>");
}
}
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:1)

表单内的按钮提交表单,因为它的默认类型是提交,重新加载页面。
您可能还希望将输入值传递给函数,而不仅仅是字符串'fruit'

更改此行

<button onclick="myFunc('fruit')">Enter</button>

<button type="button" onclick="myFunc(document.getElementById('fruit').value)">Enter</button>

FIDDLE

答案 1 :(得分:0)

<button onclick="myFunc('fruit')">Enter</button>

传递字符串&#34; fruit&#34;到你的函数,然后命中默认值。

<button onclick="myFunc(fruit)">Enter</button>

如果存在变量fruit,则运行该函数。