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