【发布时间】:2019-01-01 23:36:58
【问题描述】:
我知道之前有人问过这个问题 (Use tab to indent in textarea),但提供的答案并没有解决我的问题。我的代码如下:
$(document).ready(() => {
document.getElementById('input').onkeydown = e => {
if (e.keyCode == 9 || e.which == 9) {
e.preventDefault();
var s = this.selectionStart;
this.value = this.value.substring(0, this.selectionStart) + "\t" + this.value.substring(this.selectionEnd);
this.selectionEnd = s + 1;
}
}
/* This jQuery solution doesn't work, either
$('#input').keydown(e => {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
var start = this.selectionStart;
var end = this.selectionEnd;
// set textarea value to: text before caret + tab + text after caret
$(this).val($(this).val().substring(0, start)
+ "\t"
+ $(this).val().substring(end));
// put caret at right position again
this.selectionStart =
this.selectionEnd = start + 1;
}
});
*/
});
<!doctype html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
</script>
</head>
<body>
<textarea id="input"></textarea>
</body>
</html>
浏览器是 Mac 上的 Google Chrome 67。
【问题讨论】:
标签: javascript jquery html