JS新手制作带用户名密码输入框的网页功能失效,求问题排查
你的JavaScript表单验证问题排查与修复方案
嘿,作为刚入门JavaScript的新手,踩这种表单验证的坑太正常啦!我仔细看了你的代码,发现几个关键问题导致功能失效,咱们一个个捋清楚:
- 没获取输入框的实际值:你用
document.getElementById("fuser")拿到的是DOM元素对象本身,不是用户输入的文本内容!必须加上.value才能拿到输入框里的字符串,比如var username = document.getElementById("fuser").value,密码同理。 - 语法错误(括号不匹配):你的if嵌套结构里,第二个if的else后面少了一个闭合的
},导致整个函数的语法报错——浏览器遇到语法错误会直接停止执行这个函数,这也是功能完全没反应的重要原因。 - 可选优化:语句结尾加分号:虽然现代浏览器会自动补全分号,但养成写分号的习惯能避免很多莫名其妙的bug,比如
alert("hi");后面记得加分号。
修复后的完整代码
function entering() { alert("hi"); // 补充分号 var username = document.getElementById("fuser").value; // 加上.value获取输入值 var password = document.getElementById("fpass").value; // 同理 if (username == "f") { if (password == "f") { alert('Nice'); } else { alert('wrong password'); } // 补上缺失的闭合括号 } else { alert('wrong username'); } // 如果你是用表单提交触发这个函数,记得加下面这行阻止页面刷新 return false; }
额外小提示
如果你的函数是绑定在表单的onsubmit事件上的,一定要在函数最后加return false;(或者用event.preventDefault()),不然浏览器会默认提交表单并刷新页面,你刚弹的alert可能一闪而过就没了。
内容的提问来源于stack exchange,提问作者the LEGENDARY
相关产品推荐
相关产品推荐

