0

在我的应用程序中,我有一个文本区域,用户无法删除在 IE9 中使用退格键或删除键输入的字符。这适用于 Chrome。

我有以下代码

$('textarea').live('keydown', function(e) {
        var keyCode = e.keyCode || e.which;
        if (keyCode == 9) {
            var currentIndex = getCaret($(this).get(0))
            selectText($(this), currentIndex);
            return false;
        }
    });
});

我使用jQuery.highlighttextarea.js突出显示模式上的单词。我不确定是否 需要修改jQuery.highlighttextarea.js来处理 backspace 或 delete 。请建议

我确实像这样使用它

我确实像这样使用它

if (e.which == 9) {
var currentIndex = getCaret($(this).get(0))
            selectText($(this), currentIndex);
            return false;
    }

if (e.which == 8 || e.which == 46)  {
    return false;

}

但是现在退格或删除不起作用

4

2 回答 2

5

键码 9 是tab. 在这里查看:http: //www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

你想要8and 46,所以像:

if (e.which == 8 || e.which == 46) return false;
于 2013-07-03T14:44:39.660 回答
1

将此触发器添加到jquery.highlighttextarea.js

'keydown.highlightTextarea' : $.proxy(function(e) {

                    var keyCode = e.keyCode || e.which;
                    if (keyCode == 9) {
                        var currentIndex = getCaret($(e.target).get(0))
                        selectText($(e.target), currentIndex);
                        return false
                    } 
                    if (keyCode == 8 || keyCode == 46) {
                        this.highlight(true);
                    }
                    this.highlight(true);

                }, this),
于 2013-07-31T09:34:34.353 回答