邮箱地址一致性校验弹窗逻辑错误的修复咨询
邮箱地址一致性校验弹窗逻辑错误的修复咨询
嘿,我来帮你排查下问题所在~
你当前的代码里有个很容易忽略的小问题:你直接把email和confirmation这两个DOM元素对象做比较了,而不是对比用户在输入框里填写的实际内容!这就导致不管用户输入什么内容,这两个元素对象本身永远不会相等,所以每次点击按钮都会触发弹窗提示。
咱们只需要修改alertBox函数,获取输入框的value属性来做对比就可以解决这个问题了,修复后的代码如下:
function alertBox() { // 获取两个输入框的用户输入内容 let email = document.getElementById("email").value; let confirmation = document.getElementById("confirmation").value; // 对比输入内容是否不一致 if (email !== confirmation) { alert("Email addresses do not match. Please try again."); } }
另外给你两个小优化建议:
- 把输入框的
type从text改成email,这样浏览器会自动提供基础的邮箱格式校验,提升用户体验:<input type="email" name="email" id="email"> <input type="email" name="confirmation" id="confirmation"> - 使用**严格不等运算符
!==**替代!=,这是JavaScript里更规范的写法,能避免隐式类型转换带来的潜在问题。
这样调整后,只有当用户输入的两个邮箱内容不匹配时才会弹出提示,内容一致时就不会触发弹窗啦~
备注:内容来源于stack exchange,提问作者Brad Richerson
相关产品推荐
相关产品推荐

