我正在学习JavaScript,而且正在开发一个待办事项列表类型的应用程序。
创意:“添加”按钮在HTML中设置为禁用,仅在至少有一个字符时启用。
我的代码仅在至少有2个字符且无法解释为什么它没有检测到第一个字符时才有效。
另一个问题是如果输入框内容已被删除,如何将“添加”按钮设置为禁用。
HTML
<input id="addToListInput" onkeydown="buttonStatus()" value="" type="text"><input id="addToListButton" disabled type="submit" Value="Add to list" onClick="addToList(this)">
JS
function buttonStatus() {
var input = document.getElementById('addToListInput');
var submit= document.getElementById('addToListButton');
if (input.value.trim() ==""){
submit.disabled=true;
}else{
submit.disabled=false;
}
}
答案 0 :(得分:4)
请改用keyup
。通过使用keydown
,您检测到密钥何时关闭,但文本框值在此时未发生变化...
<input id="addToListInput" onkeyup="buttonStatus()" value="" type="text">
答案 1 :(得分:1)
onkeydown在实际触发输入控件之前被触发,如果使用onkeyup,它应该按预期工作。