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

时间:2015-05-08 01:33:37

标签: javascript

我有一个可以在任何按键上调用的函数。 在textarea焦点我禁用按键功能。 在textarea模糊我的按键功能调用应该再次启用,但由于某种原因它不是。

这是页面:http://119.247.250.128/wasyoku/

function Kyprime()
{

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



            if (event.keyCode == 4) turn()              // control d
            if (event.keyCode == 126) hideframe()       // ~

            if (event.keyCode == 96) {                  // `
                parent.C.location = (parent.C.location  !=  wasyoku+"home/prime.html")
                ? "home/prime.html" : "n/FBwasyoku.html" }



    if ( parent.C.location != wasyoku + "ascii.html"  
    && parent.C.location   != wasyoku + "masterpiece/pagelet.html"
    && parent.C.location   != wasyoku + "masterpiece/artwork.html"
    && parent.C.location   != wasyoku + "masterpiece/webwork.html")
    {


        if (event.keyCode == 32)            // spacebar =
            parent.C.location = "../masterpiece/pageletNews.html"
        else if (event.keyCode == 3 | event.keyCode == 13)      // enter return
            parent.C.location = "../ascii.html"


};      document.onkeypress = Kyprime

如何在textarea模糊后让我的按键功能继续工作?

1 个答案:

答案 0 :(得分:0)

你可以创建两个事件监听器来定义你的keypress事件是否应该触发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};

工作示例: https://jsfiddle.net/czaj1a0s/1/