将表单输入值设置为“”不会清除空格

时间:2010-11-08 16:00:22

标签: javascript forms key-events

我正在尝试在JavaScript中实现命令行模拟器。我希望Spacebar键充当Enter(提交,然后清除命令行)。

在这篇文章中,我们将space表示为下划线,因此_表示[space]

如果我输入banana_然后,在按下按键后,我拨打input.value= "",它会清除banana,但不会清除剩余的space

我测试了onkeydownonkeypress,但似乎没有任何区别。实际上,onkeyup可以解决问题,请参阅下面的答案!

这是我的代码。有人可以帮我删除额外的空间......

<html><head>

<script type="text/javascript">  

    document.onkeypress = keyCheck;  

    function keyCheck( e ) {  
        var keyID = (window.event) ? event.keyCode : ( e.keyCode ? e.keyCode : e.charCode );  
        switch(keyID) {  
            case 32: //spacebar  
                alert( "space pressed, clearing..." );  
                document.getElementById( "cli" ).value="";  
                break;  
            default:  
                //do something else  
                break;  
            } 
        }  
</script>  
</head>  

<body>
  <form name="frm" id="frm" onSubmit="go( this )">
  <input name="cli" id="cli" type="text" name="cmd" size="122">
</body>

</html>

1 个答案:

答案 0 :(得分:2)

改为使用onkeyup

document.onkeyup = keyCheck;

这样,事件发生在 之后,将字符添加到元素的值中。

试一试: http://jsbin.com/esacu3