You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JQuery功能异常排查:输入匹配数组时无法显示对应答案

问题分析与修复方案

嘿,我帮你找出几个导致功能失效的关键点啦,咱们一个个来看:

1. 输入值获取时机错误

你在页面加载时就执行了var input = $("#vraag").val();,这时候输入框是空的,之后用户输入内容时,这个input变量不会自动更新。得在触发事件(回车/点击按钮)的时候再获取当前输入框的内容才行。

2. 数组匹配逻辑错误

你用if(input == vragen)把输入的字符串和整个数组直接比较,这永远不会相等哦。应该检查输入值是否存在于vragen数组中,还要找到对应的索引,这样才能取出antwoorden里的对应答案。

3. 按钮点击事件未实现核心逻辑

目前按钮点击只是弹出alert,没有执行匹配和显示答案的逻辑,得把回车事件里的逻辑复用过来。

4. 匹配成功后未插入答案内容

即使匹配成功,你也没把对应的答案放到#arraytext里,所以text2区域就算显示了也看不到内容。


修正后的完整代码

我把这些问题都修复了,你可以直接用:

<section>
 <img id="samen" src="img/samen.svg" alt="samen">
 <img id="klein" src="img/klein.svg" alt="klein">
 <div id="text1">
 <p>Vb.: Professor waarvoor staat html?</p>
 <p>antwoord: HyperText Markup Language</p>
 <input type="text" name="vraag" id="vraag" onkeypress="keyCode(event)" placeholder="Professor, mag ik iets vragen?" required/><br>
 <input id="button" type="submit" name="button" value="wat kan ik stellen?" />
 </div>
 <img id="groot" src="img/groot.svg" alt="groot">
 <div id="text2">
 <p id="arraytext"></p>
 </div>
</section>
</main>
<footer>
 <img id="logo" src="img/logo.png" alt="logo">
</footer>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <!-- 记得引入jQuery哦,如果还没加的话 -->
<script>
var vragen = ["is het gif of jif?"];
var antwoorden = ["Het is Gif tenzij je de historie kent."];

// 把核心逻辑抽成一个函数,方便回车和按钮点击复用
function checkQuestion() {
  var input = $.trim($("#vraag").val()); // 去掉前后空格,避免用户输入空格导致匹配失败
  var index = vragen.indexOf(input);
  if (index !== -1) {
    // 匹配成功,显示text2并插入对应答案
    $('#text2').css('display', 'inline-block');
    $('#arraytext').text(antwoorden[index]);
  } else {
    // 可以在这里加不匹配时的提示,比如隐藏text2或者显示错误信息
    $('#text2').css('display', 'none');
    alert("抱歉,这个问题我还不会回答哦!");
  }
}

// 按钮点击事件
document.getElementById('button').onclick = function() {
  checkQuestion();
}

// 回车触发事件
function keyCode(event) {
  var x = event.which || event.keyCode;
  if (x == 13) {
    event.preventDefault(); // 阻止默认的表单提交行为
    checkQuestion();
  }
}
</script>

额外优化点说明

  • 我把核心逻辑抽成了checkQuestion()函数,这样回车和按钮点击都能复用,避免重复代码。
  • 用$.trim()去掉输入内容的前后空格,防止用户不小心输入空格导致匹配失败。
  • 加入了不匹配时的处理逻辑(隐藏text2+提示),提升用户体验。
  • 记得确保页面引入了jQuery库,如果还没加的话,要加上<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>这行哦。

内容的提问来源于stack exchange,提问作者Nicolas Vanhuynegem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:00:49