阻止用户在文本框中键入文本,但允许粘贴键盘快捷键

时间:2014-09-04 10:18:19

标签: javascript jquery html

我想知道是否有一种方法可以禁用所有按键事件(例如键入文本),同时选择文本框元素/具有焦点但仍然允许使用ctrl + v粘贴快捷方式。换句话说,我想让它成为用户可以在框中输入任何文本的唯一方法是粘贴它(通过使用上下文菜单或通过ctrl + v)。

3 个答案:

答案 0 :(得分:2)

尝试这个简单的解决方案:

<input type="text" id="txtbox" />


$(document).ready(function () {
    var ctrlKey = 17
    var vKey = 86
    $("#txtbox").keydown(function (e) {
        if (!(e.ctrlKey && e.which == vkey)) {
            return false;
        }
    });
});

<强> DEMO

答案 1 :(得分:1)

这里是代码,停用keydown,但保持Ctrl + v工作。

http://jsfiddle.net/70h3zron/

var ctrlActive = false;

$('#idtext').keydown(function(e) {
    if(ctrlActive)
    {
        if(event.which == 86) {
            return true;
        }
        else
        {
            e.preventDefault();
            return false;
        }
    }
    else
    {
        if(event.which == 17) 
            ctrlActive = true;
        else
        {
            e.preventDefault();
            return false;
        }
    }
});


$('#idtext').keyup(function(e) {
    if(event.which == 17) {
        ctrlActive = false;
    }
});

答案 2 :(得分:0)

在jQuery中使用它,

$('#yourTextElementId').keypress(function(){
    return false;
)};

Demo