3

JavaScriptでコマンドラインエミュレータを実装しようとしています。Spacebarキーを機能させたいEnter(送信してからコマンドラインをクリアする)。

spaceこの投稿では、aをアンダースコアとして表現しましょう。つまり、次のこと_を意味し[space]ます。

入っbanana_て、キーを押した後、電話するとinput.value= ""、クリアされますbananaが、残りはクリアされませんspace

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>
4

1 に答える 1

2

onkeyup代わりに使用してください。

document.onkeyup = keyCheck;

このように、イベントは、文字が要素の値に追加された後に発生します。

試してみてください:http: //jsbin.com/esacu3

于 2010-11-08T16:03:44.013 に答える