【问题标题】:Why i get undfined when i am using keyup event? [closed]为什么我在使用 keyup 事件时得到未定义? [关闭]
【发布时间】:2020-04-21 10:19:34
【问题描述】:

我想提醒用户按下的键,所以我使用了这个 jQuery keyup 事件处理程序:

$(document).ready(function(e) {

  $(".moveup").keyup(function() {
    alert(e.keyCode)
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="moveup" type="text" placeholder="Press key for Up move" id="textset" name="upmove" />

我按下的所有键都“未定义”。 我正在使用 chrome 浏览器。 可能是什么问题?

【问题讨论】:

  • 你应该使用keyup中的事件,而不是ready中的事件。
  • e 是来自 dom.ready 处理程序的事件对象,而不是来自您的 keyup 处理程序

标签: jquery undefined keypress


【解决方案1】:

e.keycode 未定义将 e 添加到您的 keyup 函数中

$(document).ready(function(){

$( ".moveup" ).keyup(function(e) {
    alert(e.keyCode)
  });
});

【讨论】:

  • 对不起,我的错字键码未在他的代码中定义。
  • 我明白了。我修复了它,现在我试图将我的结果插入到相同的输入中,由于某种原因,我得到了两次结果。我使用了 $(this).val(e.keyCode.toUpperCase) ,并且对于我为新值设置的每个键,我都会得到双倍的结果。例如,我按“A”我得到 Aa 。可能是什么问题?
  • 你能把 js 函数放在改变的地方吗?那我可以好好看看
  • $(document).ready(function(){ $( ".moveup" ).keypress(function(e) { $(this).val(String.fromCharCode(event.keyCode)); }); }); 当我提醒我的 "String.fromCharCode(event.keyCode)" 时,我得到了正确的输出,但是当我检查我的输入字段时,我看到了双重结果,例如 "ee","ff" 。 .
  • 它仅在我尝试将 e.keyCode 插入同一输入时发生,那么我该如何处理这个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 2013-11-05
  • 2019-02-21
相关资源
最近更新 更多