Javascript 如何检测用户是否删除了输入框中的文本
我有以下代码:Javascript 如何检测用户是否删除了输入框中的文本,javascript,html,Javascript,Html,我有以下代码: <!DOCTYPE html> <html> <body> <!-- When a user clicks a key provide info on the key clicked --> <form action="#" id="sampForm"> <input id='charInput' type="text">
<!DOCTYPE html>
<html>
<body>
<!-- When a user clicks a key provide info on the key clicked -->
<form action="#" id="sampForm">
<input id='charInput' type="text">
<p id="keyData">Key Data Here</p>
</form><br /><br />
</body>
<script>
function getChar(event)
{
// event.which returns the key or mouse button clicked
if (event.which == null) {
// Return the char if not a special character
return String.fromCharCode(event.keyCode); // IE
} else if (event.which!=0 && event.charCode!=0) {
return String.fromCharCode(event.which); // Other Browsers
} else {
return null; // Special Key Clicked
}
}
var all = '';
document.getElementById('charInput').onkeypress = function(event)
{
var char = getChar(event || window.event)
if (!char) return false; // Special Key Clicked
// document.getElementById('keyData').innerHTML = char + " was clicked";
all += char;
document.getElementById('keyData').innerHTML = all;
return true;
}
</script>
我试图做的是检查输入框的长度,如果长度为零,则应全部重置变量。
但它仍然不起作用。任何帮助都将不胜感激。谢谢
在更改文本框中的值之前,按下键
。尝试收听keyup
:
document.getElementById('charInput').onkeyup = function(event)
{
//...
}
使用
keyup
事件,只需检查值.length是否为零
函数getChar(事件){
//返回单击的键或鼠标按钮
//如果不是特殊字符,则返回字符
if(event.which==null)返回String.fromCharCode(event.keyCode);//IE
else if(event.which!==0&&event.charCode!==0)返回String.fromCharCode(event.which);//其他浏览器
返回null;//已单击特殊键
}
document.getElementById('charInput')。onkeyup=函数(事件){
if(this.value.length==0){
警报(“空”);
//在此重置变量
}
}
document.getElementById('keyData')
。标记中没有名为keyData的元素,因此无法设置其innerHTML。在运行代码时检查浏览器控制台,它会向您显示此错误及其发生的行。另外,使用char
作为变量名也有风险,因为某些标准将其作为将来的保留字()。为什么有:如果(!char)返回false;//单击了特殊键
,因为删除键是特殊键?请尝试document.getElementById('charInput')。onchange=function(){//然后检查长度}@ADyson谢谢,我添加了它。变量名仅用于测试,但感谢您的提醒,我不知道。@CCH我删除了该行,但仍然不起作用。非常感谢汉克斯,这就解决了。
document.getElementById('charInput').onkeyup = function(event)
{
//...
}