フォーム入力値を「」に設定します。スペースがクリアされません

StackOverflow https://stackoverflow.com/questions/4125510

  •  29-09-2019
  •  | 
  •  

質問

JavaScriptにコマンドラインエミュレータを実装しようとしています。私は欲しい Spacebar として行動するための鍵 Enter (送信してから、コマンドラインをクリアします)。

この投稿では、aを表します 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>
役に立ちましたか?

解決

使用する onkeyup 代わりは。

document.onkeyup = keyCheck;

これにより、イベントが発生します キャラクターは要素の値に追加されています。

やってみよう: http://jsbin.com/esacu3

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top