为什么不是';我的Javascript开关盒不能工作吗?

为什么不是';我的Javascript开关盒不能工作吗?,javascript,switch-statement,case,Javascript,Switch Statement,Case,使用JSFIDLE解释器时,按钮和输入字段出现在“结果”框中,但是似乎没有对脚本的任何响应。我尝试了其他解释器,比如W3School的解释器,虽然它确实给了我一个指示,表明函数实际上正在被调用,但结果似乎只是默认情况,甚至在整个字段连同按钮和输入消失之前,它也只出现了几分之一秒(值得注意的是,我输入的文本没有出现在段落中,而且“水果”似乎被忽略了——因此很可能在输入字段、按钮和函数之间传递信息时存在问题。) 逻辑对我来说似乎很简单,我也看过其他的例子——但是我对JS是新手,所以我可能忽略了一些语

使用JSFIDLE解释器时,按钮和输入字段出现在“结果”框中,但是似乎没有对脚本的任何响应。我尝试了其他解释器,比如W3School的解释器,虽然它确实给了我一个指示,表明函数实际上正在被调用,但结果似乎只是默认情况,甚至在整个字段连同按钮和输入消失之前,它也只出现了几分之一秒(值得注意的是,我输入的文本没有出现在段落中,而且“水果”似乎被忽略了——因此很可能在输入字段、按钮和函数之间传递信息时存在问题。)

逻辑对我来说似乎很简单,我也看过其他的例子——但是我对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>

进入

函数myFunc(水果){ 开关(水果){ 案例“橙子”: document.getElementById(“here”).innerHTML=(“橙子每磅0.59美元”); 打破 案例“苹果”: document.getElementById(“此处”).innerHTML=(“苹果每磅0.32美元)。
”; 打破 违约: document.getElementById(“此处”).innerHTML=(“对不起,我们没有“+fruit+”
”); } }
输入
将字符串“fruit”传递给您的函数,然后该函数将达到默认值

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

将使用变量fruit(如果存在)运行函数。

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

换行

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

Enter

无需在1:1转换中使用switch(),LookUpTable可以完美工作:document.getElementById(“此处”).innerHTML={Oranges:“橙子每磅0.59美元。”,Apple:“苹果每磅0.32美元。
”}[Frutt]|(“抱歉,“+Frutt+”
”);哦。也许是时候让我出去走走了。谢谢你的回复!
<button onclick="myFunc('fruit')">Enter</button>
<button type="button" onclick="myFunc(document.getElementById('fruit').value)">Enter</button>