javascript - 更简洁的不区分大小写的测验验证

标签 javascript html function if-statement input

这个问题有点晦涩且具体,所以我认为我无法在任何地方找到它,所以......

我在“测验”中有 3 个输入,只是想知道是否有更好的方法来执行以下操作:

我正在使用 If...Else... 语句来检查答案,并希望使其区分大小写

这是(的精简版本)我的尝试...(请对我放轻松,我不是特别先进,我知道有更好的方法来实现这一目标,但我会喜欢这样做......)

<input id="ans1">
<input id="ans2">
<input id="ans3">

还有 JavaScript...

var ans1 = document.getElementById("ans1").value;
var ans2 = document.getElementById("ans2").value;
var ans3 = document.getElementById("ans3").value;
var ans1 = ans1.toLowerCase();
var ans2 = ans2.toLowerCase();
var ans3 = ans3.toLowerCase();

if (ans1 == "hola") {
   alert('Correct');
} else {
   alert('Incorrect');
  }
if (ans2 == "llamas") {
   alert('Correct');
} else {
   alert('Incorrect');
  }
if (ans3 == "me") {
   alert('Correct');
} else {
   alert('Incorrect');
  }}

所以基本上,我只是想知道是否有更简洁或更好的方法来做到这一点?

谢谢,任何帮助表示赞赏:)

最佳答案

当然,您可以使用函数来减少重复代码:

function checkAnswer(id, correctResponse) {
  var answer = document.getElementById(id).value.toLowerCase();
  if(answer === correctResponse) {
    alert("Correct");
  } else {
    alert("Incorrect");
  }
}
checkAnswer("ans1", "hola");
checkAnswer("ans2", "llamas");
checkAnswer("ans3", "me");

您还可以创建一个将元素与答案关联的对象:

var correctAnswers = {
  "ans1": "hola",
  "ans2": "llamas",
  "ans3": "me"
};
for(var id in correctAnswers) {
  var answer = document.getElementById(id).value.toLowerCase();
  if(answer === correctAnswers[id]) {
    alert("Correct");
  } else {
    alert("Incorrect");
  }
}

关于javascript - 更简洁的不区分大小写的测验验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27336424/

相关文章:

javascript - 使用下拉列表从 mysql 数据库中获取数据,然后使用搜索功能从选定的下拉列表选项中过滤数据

c++ - 如何使用数组传递多参数函数? - C++

c++ - 为什么结构的方法不必在 C++ 中声明?

javascript - Angularjs bootstrap 弹出窗口在模型更改后闪烁

javascript 正则表达式正向后看以动态替换/包装 URL 中的文本

javascript - 检查选项选择ng-repeat

javascript - 修改 HTML 文件以将所有外部脚本和 CSS 嵌入到 &lt;script&gt; 和 &lt;style&gt; 标签中

html - 为什么 html 元素以意外的顺序呈现?

php - 如何使用复选框制作帖子类别过滤器?

C++ 函数写得不好,不知道如何简化它[初学者]