我想要一个文本区域来处理按 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/