Javascript 当textarea有焦点时禁用按键功能,当textarea失去焦点时重新启用功能

Javascript 当textarea有焦点时禁用按键功能,当textarea失去焦点时重新启用功能,javascript,Javascript,我有一个可以在任何按键上调用的函数。 在textarea focus上,我禁用按键功能。 在textarea blur上,我的按键功能调用应该再次启用,但由于某些原因没有启用 这是网页: 如何使我的按键功能在文本区域模糊后继续工作?您可以创建两个事件侦听器来定义按键事件是否应触发Kyprime函数: var textarea = document.getElementById('q'); textarea.addEventListener('blur', function() { d

我有一个可以在任何按键上调用的函数。 在textarea focus上,我禁用按键功能。 在textarea blur上,我的按键功能调用应该再次启用,但由于某些原因没有启用

这是网页:


如何使我的按键功能在文本区域模糊后继续工作?

您可以创建两个事件侦听器来定义按键事件是否应触发Kyprime函数:

var textarea = document.getElementById('q');

textarea.addEventListener('blur', function() {
     document.onkeypress = Kyprime;
});
textarea.addEventListener('focus', function() {
     document.onkeypress = null;
});
然后在Kyprime函数中,可以删除以下行:

document.getElementById('q').onfocus = function() {return false};

工作示例:

改进的代码格式解释代码和问题。如前所述,这并没有真正意义。仅当textarea没有焦点时才启用按键有什么意义?所有按键都设置为函数调用,但当焦点进入textarea时,这些调用应停止并返回为正常的键入文本函数。因此,当完成textarea时,它应该恢复其原始状态。你们更清楚吗(・・?addEventListener不运行!甚至使用标志…var t=0函数disKp(){t=1}函数resumeKp(){t=0}document.onkeypress=(t<1)?Kyprime:null;或if()来排除所有按键。它是禁用函数或无法键入的╮" ╯_╰╭"问题可能是“document.onkeypress”在加载时只被调用一次。您是否尝试将“document.onkeypress”直接放入disKP和resumeKP函数中?您不需要“t”变量。
document.getElementById('q').onfocus = function() {return false};