Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测用户是否删除了输入框中的文本_Javascript_Html - Fatal编程技术网

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) 
{
      //...
}