javascript - 输入输入后立即将禁用按钮设置为false?
问题描述
我的按钮有点问题,无法按我想要的方式运行。因此,一旦在放置文本字段中输入文本输入,我就试图让我的按钮将禁用设置为 false。但目前它仅在文本字段焦点更改后才有效。
我已经添加了我的代码作为示例,但我不确定如何在不需要单击文本字段的情况下立即完成此操作。
function checkInput() {
var tbValue = document.getElementById('tb').value;
if (tbValue != '') {
document.getElementById('next').disabled = false;
}
}
.btn {
width: 75px;
height: 30px;
}
.inputElement {
height: 24px;
}
<input type="text" class="inputElement" id="tb" autocomplete="off" onchange="checkInput()">
<input type="button" class="btn" id="next" value="Next" disabled>
解决方案
您可以使用keyup
(释放任何键后触发)事件或oninput
(值已更改)而不是onchange
(仅在输入失去焦点时触发)。
const nextButton = document.getElementById('next');
const input = document.getElementById('tb');
function checkInput() {
nextButton.disabled = !input.value;
}
.btn {
width: 75px;
height: 30px;
}
.inputElement {
height: 24px;
}
<input type="text" class="inputElement" id="tb" autocomplete="off" oninput="checkInput()">
<input type="button" class="btn" id="next" value="Next" disabled>
提示:
您的解决方案不会disabled
再次激活。我已经if
用显式赋值替换了你的语句。
一遍又一遍地选择你的元素keyup
也不是有效的。我之前选择过一次并将它们分配给常量变量。
推荐阅读
- r - Graphics are creating an error when I attempt to knit in R Markdown
- visual-c++ - Create a loop that determines if the object is on the left or right side of the screen given the coordinates
- sqlite - NULL statement doesn't fill the empty spaces in Sqlite
- excel - 如何在 Excel 的多列中查找/突出显示重复值
- django - Django中具有唯一约束的软删除
- javascript - 使用 json.stringify 的 Anagram 解决方案,这是解决问题的正确方法吗
- javascript - 如何从文本中删除字符串
- linux - 使用 awk 处理具有不同字段数的多个文件
- c# - 根据兄弟节点选择 XML 节点
- c# - 在通过反射调用方法后加载程序集/dll 时,方法调用会引发“对象与目标类型不匹配”异常