【发布时间】:2019-06-28 23:33:35
【问题描述】:
我需要询问用户一个提示,但他们只能输入某些单词才能接受答案,如果用户没有用正确的单词回答,它会说它无效并再次提问。 这只能通过使用 javascript 来完成。
var entering = confirm('Confirm to add state or territory');
if (!entering) {
return;
} else {
while (true) {
stInput = prompt('Enter state or territory');
function validateUserChoice(stInput) {
if (stInput !== "Queensland" && stInput !== "New South Wales" && stInput !== "Victoria" && stInput !== "Tasmania" && stInput !== "Northern Territory" && stInput !== "Western Australia" && stInput !== "South Australia" && stInput !== "Australian Capital Territory") {
alert("invalid state or territory");
} else {
return false;
}
}
populationInput = parseInt(prompt('Enter population for ' + stInput + ''));
while (isNaN(populationInput)) {
alert('Your input was invalid');
populationInput = parseInt(prompt('Enter population for ' + stInput + ''));
}
changeInput = parseFloat(prompt('Enter growth rate for ' + populationInput + ''));
while (isNaN(changeInput)) {
alert('Your input was invalid');
changeInput = parseFloat(prompt('Enter growth rate for ' + populationInput + ''));
}
break;
}
}
这是我到目前为止所做的,但它没有验证,所以我做错了什么,只是不确定是什么。
用户只能回答的词是:Queensland、New South Wales、Victoria、Tasmania、Northern Territory、Western Australia、South Australia、Australian Capital Territory。
【问题讨论】:
-
您的代码几乎是正确的,只是您不能在需要时使用 return 语句。而不是返回尝试执行操作或根本不做任何事情。
-
题外话:不要检查每个有效单词,而是将所有单词添加到数组中,然后使用
wordsArray.indexOf(stInput) == -1检查数组是否包含键入的单词,如果为真,则表示该单词不在数组中......它使游览代码更清晰和可扩展
标签: javascript validation input