JavaScript问题:onkeyup触发的函数无法禁用id为mySubmit的提交按钮
解决密码不匹配时提交按钮无法禁用的问题
从你给出的代码片段和问题描述来看,核心问题大概率出在代码截断的部分以及逻辑分支的缺失上,我帮你梳理并修复:
常见问题点及修复方案
- 方法名拼写错误:你代码里的
document.getElementBy...明显没写完,正确获取提交按钮的方法是document.getElementById("mySubmit"),少写Id就会找不到目标元素,自然无法修改它的禁用状态。 - 逻辑分支缺失:你只处理了密码匹配的情况,却没有编写密码不匹配时的逻辑——这才是禁用按钮的关键分支。
disabled属性设置错误:要直接给按钮元素的disabled属性赋值true或false,这才是控制按钮禁用/启用的正确方式。
修正后的完整函数
function check_match() { var pw1 = document.getElementById("one").value; var pw2 = document.getElementById("two").value; var errorMsg = document.getElementById("error_match"); var submitBtn = document.getElementById("mySubmit"); // 正确获取提交按钮 if (pw1 === pw2) { errorMsg.style.color = "green"; errorMsg.innerHTML = "passwords match"; // 顺便修正你原代码里的拼写错误:paswords → passwords submitBtn.disabled = false; // 密码匹配时启用按钮 } else { errorMsg.style.color = "red"; errorMsg.innerHTML = "passwords do not match"; submitBtn.disabled = true; // 密码不匹配时禁用按钮 } }
额外优化建议
- 确保你的提交按钮确实设置了
id="mySubmit",别写错ID值。 - 建议用
===严格相等判断,避免隐式类型转换导致的意外问题。 - 可以在页面加载时默认禁用提交按钮,避免用户还没输入密码就提交:
window.onload = function() { document.getElementById("mySubmit").disabled = true; }
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

