JavaScript if语句输入小于16的年龄仍跳转彩票网站问题求助
问题排查结果
- 你预先定义了固定值为16的常量
age,并没有接收prompt弹出框的用户输入内容,所以if判断永远命中age >= 16的分支,导致每次都触发跳转逻辑 prompt方法的返回值为字符串类型,直接和数字做大小比较可能出现隐式转换异常,需要先转成数字类型- 你绑定点击事件的节点是类名为
image-button的div容器,不是内部实际的按钮元素,属于不规范的选择器写法
修正后代码
JavaScript代码
// 选中实际可点击的按钮元素 const button = document.querySelector(".image-button button"); function checkAge() { button.addEventListener('click', function() { // 接收用户输入并转为数字类型 const inputAge = Number(prompt("请输入你的年龄:")); // 先校验输入合法性 if (isNaN(inputAge) || inputAge < 0) { alert("请输入有效的年龄数值"); return; } if (inputAge >= 16) { alert("你符合参与彩票的年龄要求"); // 原跳转逻辑可按需自行保留 // window.location.assign("你的目标地址") } else { alert("你不符合参与彩票的年龄要求"); } }); } checkAge();
HTML代码无需修改,保持原有写法即可
内容的提问来源于stack exchange,提问作者Doc Santoro
相关产品推荐
相关产品推荐

