2017-07-19 32 views
1

我的网站,就是要通过导航按下键盘上的按键限制按钮:进入\+-,等等...我的问题是,我有文字区域,和当我按下这些按钮时,如果选择了textArea,则键入和按钮同时工作。与文本域

我认为解决这个问题的最好方法是使用某种布尔值。我试图使用if(!x.hasFocus()){ allow buttons to be used},但是这个布尔值只适用于整个文档而不适用于特定的文本区域。

那么如何确保在选择textArea时键盘按下功能不会发生?

+0

检查'event.target'是否是textarea,或者检查'document.activeElement'是否是textarea等。 –

+0

我明白你的意思是由activeElement和目标,但我不知道“是一个textarea”的特定布尔值。 你有什么建议吗? – joe55460

+0

“是一个textArea”的布尔值如下所示:if(document.activeElement.tagName ===“TEXTAREA”){// do things} – joe55460

回答

0

您可以添加一个全球性的事件侦听器的所有文字区域和输入字段不返回任何东西时,这些按钮被按下

$(function(){ 
 
    $('textarea,input').on('keydown', function(e){ 
 
    if(e.keyCode===13 || e.keyCode==187 || e.keyCode===107 || e.keyCode===109 || e.keyCode==189 || e.keyCode==111 || e.keyCode===191) { 
 
     return false; 
 
    } 
 
    }) 
 
})

,那么你可以调用每个键应有的作用。

+0

这是一个漂亮的技巧,但我确实希望用户能够使用在textArea中写入这些键时:/ – joe55460

+0

我有点困惑。所以,当你专注于一个textarea你不想输入这些字母,但你也希望用户能够键入它们? –

+0

我很抱歉。你确实回答了我发布的问题,但我错误地写下了这个问题。 – joe55460