5

我有一个文本区域,您只能在其中使用屏幕按钮输入字符,因此禁用了通过键盘编辑文本区域。但我想允许用户使用退格笔划删除他输入的内容。有没有办法在 Javascript 中做到这一点?

4

2 回答 2

8

有选择地启用密钥非常容易。只需添加一个键侦听器,preventDefault当它是您不想要的键时:

myInputElement.addEventListener( 'keydown', function( e ) {
//  console.log( e.keyCode ); // for finding key codes by trying them
    if( e.keyCode >= 37 && e.keyCode <= 40 ) {
        return; // arrow keys
    }
    if( e.keyCode === 8 || e.keyCode === 46 ) {
        return; // backspace (8) / delete (46)
    }
    e.preventDefault( );
}, false );

(例如小提琴:http: //jsfiddle.net/tnayV/

于 2013-09-26T20:52:35.327 回答
1

另一个只允许后退的例子:

document.getElementById('mytextarea').addEventListener('keydown', function(e){
    if (e.which != 8){
        e.preventDefault();
        return false;
    }
}, false);

例子

于 2013-09-26T20:59:15.803 回答