Javascript 开关未触发
Javascript switch not triggering
下拉菜单和 switch 语句的行为不一致。 select 调用一个将其索引写入 cookie 的例程,这似乎工作正常。
通过 select 更改索引并且忽略开关。我已经尝试过使用字符串大小写值和数字。 select 的索引值始终正确打印到控制台。我错过了什么?
<label style="font-size:25px;" for="frq">Freq </label>
<select style="font-size:25px;" width="20" id="frq" onchange="changeFRQ()">
<option value="600" selected>600</option>
<option value="650">650</option>
<option value="700">700</option>
<option value="750">750</option>
<option value="800">800</option>
<option value="850">850</option>
</select>
function frequency(value) {
document.getElementById("frq").selectedIndex = frq;
console.log("frq:"+ frq);
switch(frq) {
case "0":
freq=600;
console.log("600");
break;
case "1":
freq=650;
console.log("650");
break;
case "2":
freq=700;
console.log("700");
break;
case "3":
freq=750;
console.log("750");
break;
case "4":
freq=800;
console.log("800");
break;
case "5":
freq=850;
console.log("850");
break;
default:
freq=600;
}
}
在您的 switch 语句中,您正在检查字符串大小写,因此您必须将 toString() 转换为您的 selectedIndex,请尝试以下语法:
function changeFRQ(value) {
let frq = document.getElementById("frq").selectedIndex.toString();
switch(frq) {
case "0":
freq=600;
console.log("600");
break;
case "1":
freq=650;
console.log("650");
break;
case "2":
freq=700;
console.log("700");
break;
case "3":
freq=750;
console.log("750");
break;
case "4":
freq=800;
console.log("800");
break;
case "5":
freq=850;
console.log("850");
break;
default:
}
console.log("frq:"+ freq);
}
<label style="font-size:25px;" for="frq">Freq </label>
<select style="font-size:25px;" width="20" id="frq" onchange="changeFRQ()">
<option value="600" selected>600</option>
<option value="650">650</option>
<option value="700">700</option>
<option value="750">750</option>
<option value="800">800</option>
<option value="850">850</option>
</select>
下拉菜单和 switch 语句的行为不一致。 select 调用一个将其索引写入 cookie 的例程,这似乎工作正常。
通过 select 更改索引并且忽略开关。我已经尝试过使用字符串大小写值和数字。 select 的索引值始终正确打印到控制台。我错过了什么?
<label style="font-size:25px;" for="frq">Freq </label>
<select style="font-size:25px;" width="20" id="frq" onchange="changeFRQ()">
<option value="600" selected>600</option>
<option value="650">650</option>
<option value="700">700</option>
<option value="750">750</option>
<option value="800">800</option>
<option value="850">850</option>
</select>
function frequency(value) {
document.getElementById("frq").selectedIndex = frq;
console.log("frq:"+ frq);
switch(frq) {
case "0":
freq=600;
console.log("600");
break;
case "1":
freq=650;
console.log("650");
break;
case "2":
freq=700;
console.log("700");
break;
case "3":
freq=750;
console.log("750");
break;
case "4":
freq=800;
console.log("800");
break;
case "5":
freq=850;
console.log("850");
break;
default:
freq=600;
}
}
在您的 switch 语句中,您正在检查字符串大小写,因此您必须将 toString() 转换为您的 selectedIndex,请尝试以下语法:
function changeFRQ(value) {
let frq = document.getElementById("frq").selectedIndex.toString();
switch(frq) {
case "0":
freq=600;
console.log("600");
break;
case "1":
freq=650;
console.log("650");
break;
case "2":
freq=700;
console.log("700");
break;
case "3":
freq=750;
console.log("750");
break;
case "4":
freq=800;
console.log("800");
break;
case "5":
freq=850;
console.log("850");
break;
default:
}
console.log("frq:"+ freq);
}
<label style="font-size:25px;" for="frq">Freq </label>
<select style="font-size:25px;" width="20" id="frq" onchange="changeFRQ()">
<option value="600" selected>600</option>
<option value="650">650</option>
<option value="700">700</option>
<option value="750">750</option>
<option value="800">800</option>
<option value="850">850</option>
</select>