处理textarea中的选项卡

时间:2012-06-23 16:24:53

标签: javascript jquery html

单击选项卡时,我需要在textarea中插入一个选项卡,而不是将焦点移动到下一个元素。

我做过一些研究但发现没有实际使用制表符而不是一系列空格的解决方案。

我该怎么做?如何插入真正的标签而不是4个空格?

2 个答案:

答案 0 :(得分:3)

<强> jsFiddle example

JavaScript的:

function insertTab(o, e) {
    var kC = e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which;
    if (kC == 9 && !e.shiftKey && !e.ctrlKey && !e.altKey) {
        var oS = o.scrollTop;
        if (o.setSelectionRange) {
            var sS = o.selectionStart;
            var sE = o.selectionEnd;
            o.value = o.value.substring(0, sS) + "\t" + o.value.substr(sE);
            o.setSelectionRange(sS + 1, sS + 1);
            o.focus();
        }
        else if (o.createTextRange) {
            document.selection.createRange().text = "\t";
            e.returnValue = false;
        }
        o.scrollTop = oS;
        if (e.preventDefault) {
            e.preventDefault();
        }
        return false;
    }
    return true;
}​

here没有羞辱。

答案 1 :(得分:1)

无论代码在何处添加这四个空格,都可以使用文字制表符或转义序列\t替换这四个空格。