我有此页面:
var count = 0;
function switchStatement() {
var text;
var answers = document.getElementById("userInput").value;
switch (answers) {
case "":
text = (count > 0) ? "You didn't type anything." : "Please type something down...";
if (count < 1)
count++;
else
count = 0;
break;
default:
text = "Good job!";
}
document.getElementById("feedback").innerHTML = text;
document.getElementById("userInput").value = "";
}
<p>Please write something down and press "enter".</p>
<input id="userInput" type="text" onKeyDown="if(event.keyCode==13) switchStatement();">
<p id="feedback"></p>
如果用户在按“ enter”(输入case = "";
)之前未输入任何内容,则会显示一条消息。如果他再次执行相同的操作,则会显示不同的消息。如果他第三次这样做,它将循环回到第一条消息。
如何添加更多消息以避免出现这样的小循环?说,如果我想在用户不输入任何内容时收到5条不同的消息,我应该在代码中进行哪些更改?
答案 0 :(得分:2)
您可以使用一系列消息:
var messages = ["message 1...", "message 2...", "message 3...", "message 4...", "message 5..."]
然后使用count
变量作为此数组的index
来依次显示消息。
注意::如果用户键入了某些内容,则必须将count
初始化为默认值0
,以便下一个空的提交将显示索引{{ 1}}。
0
var count = 0;
var messages = ["message 1...", "message 2...", "message 3...", "message 4...", "message 5..."];
function switchStatement() {
var text;
var answers = document.getElementById("userInput").value;
switch (answers) {
case "":
text = messages[count];
count = count < messages.length - 1 ? count + 1 : 0;
break;
default:
text = "Good job!";
count = 0;
}
document.getElementById("feedback").innerHTML = text;
document.getElementById("userInput").value = "";
}