Javascript 将表单输入值设置为"&引用;不';不清除空格

Javascript 将表单输入值设置为"&引用;不';不清除空格,javascript,forms,key-events,Javascript,Forms,Key Events,我正在尝试用JavaScript实现一个命令行模拟器。我想让空格键充当输入(提交,然后清除命令行) 在本文中,让我们将空格表示为下划线,因此\uu表示[space]: 如果我输入banana,然后在按下键后调用input.value=”“,它会清除banana,但不会清除剩余的空间 我测试了onkeydown和onkeypress,但似乎没有任何区别。实际上,onkeyup起到了作用,请看下面我的答案 这是我的密码。谁能帮我把多余的空间移走 <html><head> &

我正在尝试用JavaScript实现一个命令行模拟器。我想让
空格键
充当
输入
(提交,然后清除命令行)

在本文中,让我们将
空格
表示为下划线,因此
\uu
表示
[space]

如果我输入
banana
,然后在按下键后调用
input.value=”“
,它会清除
banana
,但不会清除剩余的
空间

我测试了
onkeydown
onkeypress
,但似乎没有任何区别。实际上,
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>

document.onkeypress=keyCheck;
函数键检查(e){
var keyID=(window.event)?event.keyCode:(e.keyCode?e.keyCode:e.charCode);
开关(keyID){
案例32://空格键
警报(“按下空格,清除…”);
document.getElementById(“cli”).value=“”;
打破
违约:
//做点别的
打破
} 
}  

改用
onkeyup

document.onkeyup = keyCheck;
这样,在将字符添加到元素的值后,事件就会发生


试试看:

太棒了!非常感谢。对不起,我以为我已经测试过了,结果我没有测试过。为什么“onkeypress”不清除空格,而“onkeypup”清除空格?(我以为“onkeypress”同时等待“onkeypup”和“onkeypdown”完成)。@Hans-因为
onkeypress
事件在字符添加到输入之前触发,所以序列是handler fires>value is clear>character is added。使用
onkeyup
,处理程序在将字符添加到值后激发,因此添加字符>处理程序激发>值被清除。
onkeypress
onkeydown
的不同之处在于,如果您按住一个键,它会持续触发。