空格键和制表符的输入键问题

时间:2019-08-07 11:58:31

标签: javascript html css input

所以我的应用程序中有一些表格,除了其中的一种形式,它们似乎都可以正常工作。

当我按下空格键或制表符时,就像我有一个默认的阻止值,它什么也不会做。

我尝试使用控制台的代码getEventListeners(node),但返回后还是干净的。我还尝试使用eventListener来查看输入是否有东西

let input = document.querySelector('#input')
input.addEventListener('keydown', e => {
  console.log(e.which);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <input type="text" id="input" name="label" placeholder="Label" class="d-block w-100 mb-3 watch">
  <textarea name="comentario" placeholder="Deixe um comentário" class="d-block w-100 mb-3 watch"></textarea>
  <button class="btn btn-primary">Ok</button>
</form>

当我按下空格键或选项卡控制台时,可以很好地打印键码,但是它们却没有达到预期的效果。

这个应用程序有点像一个大项目,可能会有一些代码在困扰我的输入,但是我检查了我能想到的所有可能性,如果有人有任何建议,将受到欢迎。

我仅使用JavaScript,HTML和CSS。 库:jQuery,SVG.js,Pizzicato.js,Tuna.js,Wavesurfer.js

2 个答案:

答案 0 :(得分:1)

正如我在评论中提到的那样,我并没有在测试中投入很多精力,但是这种解决方案可以向您展示成为满足您需求的摇滚明星的途径。

https://jsfiddle.net/h3o9x5nw/1/

您可以在codes数组中添加要测试的代码,以便行为可以继续而不会破坏用户体验。而且,如果您需要测试可能的keyCode而不用失去尝试使用在线表查找内容的权限,则可以使用https://keycode.info/在JS中找到您的keyCode。

document.querySelector('#comentarios').addEventListener('keydown', e => {
            if (e.which == 32){
                e.preventDefault();
                e.path[0].value += String.fromCharCode(e.keyCode);
            }
        })

document.querySelector('#comentarios').addEventListener('keydown', e => {
            if (e.which != 32) return;

            e.preventDefault();
            e.path[0].value += String.fromCharCode(e.keyCode);

        })

答案 1 :(得分:0)

您将ID命名为#input,它可以执行某些颜色,而不是实际的输入。删除#,您应该正确定位所有其他输入。