javascript - 将表单输入值设置为 ""不清除空格

标签 javascript forms key-events

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

在本文中,我们将空格表示为下划线,因此_表示[空格]:

如果我输入 banana_,然后在捕捉到按键后调用 input.value= "",它会清除 banana,但是不是剩余的空间

我测试了 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

关于javascript - 将表单输入值设置为 ""不清除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125510/

相关文章:

java - 如何通过 HTTPS 加载 GWT 可视化 API

javascript - 无法在 Backbone.localStorage 插件中设置初始收集数据

Java:键绑定(bind)冷却时间?

java - Java中判断何时没有按键

javascript - 使用javascript获取文件夹中的文件名

javascript - AngularJS - 基于 API 的实时搜索不会随着 ng-model 的变化而更新

jquery - 检索对表单的更改

forms - 如何从 HTML 表单中读取输入并将其保存在文件中 - Golang

javascript - 提交搜索不会将我发送到 javascript 变量中指定的页面

java - Java中的KeyEventListener同时识别UP和Delete键