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

HTML游戏结局选择页面:if语句与input交互失效修复咨询

问题解决:结局选择页面跳转失效

核心问题分析

  • 输入框内容获取错误:<input>元素的内容需通过value属性获取,而非innerHTML/textContent
  • 变量未实时更新:原代码中choose仅在页面加载时获取一次值,后续输入不会更新该变量
  • 轮询方式不合理:用setInterval轮询既浪费性能又没必要,应改用事件监听
  • 类型不匹配:输入内容是字符串类型,直接与数字1-9比较会出现匹配失败

修正后的代码

<!DOCTYPE html>
<html>
<head>
    <script>
        function checkChoice() {
            // 获取输入框当前值并转为数字
            const choose = Number(document.getElementById("choice").value);
            // 判断输入是否在1-9范围内
            if (choose >= 1 && choose <= 9) {
                // 后续可根据choose值修改为对应结局页面,例如`${choose}.html`
                window.location.href = "1:1:1.html";
            }
        }

        // 页面加载完成后绑定事件
        window.onload = function() {
            const input = document.getElementById("choice");
            // 监听回车键提交
            input.addEventListener("keydown", function(e) {
                if (e.key === "Enter") {
                    checkChoice();
                }
            });
        }
    </script>
</head>
<body>
    <form>
        <label for="choice">输入1-9跳转对应结局</label><br>
        <input type="text" id="choice" name="choice" class="choice"><br>
        <!-- 可选:添加提交按钮提升交互体验 -->
        <button type="button" onclick="checkChoice()">确认跳转</button>
    </form>
</body>
</html>

额外优化建议

  • 可将输入框类型改为number,限制仅能输入数字:<input type="number" min="1" max="9">
  • 若后续每个结局对应不同页面,可通过模板字符串动态生成跳转路径,比如window.location.href = ${choose}.html``
  • 避免无意义的轮询逻辑,事件监听是更高效的交互触发方式

内容的提问来源于stack exchange,提问作者Connor Lenden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:52:48