javascript - 如何处理 textarea 中的 <tab>?

标签 javascript jquery html

我想要一个文本区域来处理按 tab 键的情况。

在默认情况下,如果您按 tab 键,焦点就会离开文本区域。但是当用户想要在 textarea 中键入 tab 键的情况呢?

我能否捕获此事件并将焦点返回到文本区域并向当前光标位置添加一个选项卡?

最佳答案

您可以:http://jsfiddle.net/sdDVf/8/ .


$("textarea").keydown(function(e) {
    if(e.keyCode === 9) { // tab was pressed
        // get caret position/selection
        var start = this.selectionStart;
        var end = this.selectionEnd;

        var $this = $(this);
        var value = $this.val();

        // set textarea value to: text before caret + tab + text after caret
        $this.val(value.substring(0, start)
                    + "\t"
                    + value.substring(end));

        // put caret at right position again (add one for the tab)
        this.selectionStart = this.selectionEnd = start + 1;

        // prevent the focus lose
        e.preventDefault();
    }
});

关于javascript - 如何处理 textarea 中的 <tab>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6140632/

相关文章:

javascript - 如何使用 Jasmine 在 javascript 中模拟新函数/对象创建调用?

javascript - 如何使用随机大小的 div 创建随机布局的网格

javascript - 单击按钮之前重置 Bootstrap 模式触发

javascript - TypeError : element. summernote 不是函数

javascript - PHP - Onchange 重新加载具有 select 值的页面

javascript - 如何将 for 循环/while 转换为漂亮的 CoffeeScript

jquery - 如何在不使用任何 jQuery CSS 的情况下设置 jQueryUI Datepicker 的样式

javascript - 将 z-index 应用于 div 溢出(滚动条)

javascript - 如何使用正则表达式和 javascript 将 1 1/2 重新格式化为相当分数 HTML

html - 页面底部的页脚,内容在其间延伸