Javascript 为什么这个文本区域看起来只添加了一个空格而不是四个?
这是我的密码:Javascript 为什么这个文本区域看起来只添加了一个空格而不是四个?,javascript,jquery,textarea,Javascript,Jquery,Textarea,这是我的密码: doc.on("keydown", ".textarea_code_snippet", function(e) { if(e.keyCode === 9) { // tab was pressed // get caret position/selection var start = this.selectionStart; var end = this.selectionEnd; var $this =
doc.on("keydown", ".textarea_code_snippet", 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();
}
});
它处理
中的制表键。按Tab键时,它会将\t
附加到文本区域。现在我想添加4个空格。这是我的新版本:
.
.
$this.val(value.substring(0, start)
+ " "
+ value.substring(end));
.
.
但当我按Tab键时,它只在文本区域添加一个空格。如何修复它?它确实添加了四个空格。你只是忘了调整一件事:
// put caret at right position again (add one for the tab)
this.selectionStart = this.selectionEnd = start + 1;
您可能会看到插入符号仅移动一个空间。您需要将上述行更改为:
// Put caret at right position again (add four for four spaces)
this.selectionStart = this.selectionEnd = start + 4;
您是否尝试过更改
this.selectionStart=this.selectionEnd=start+1代码>至this.selectionStart=this.selectionEnd=start+4代码>?它总是为我添加4个空格…我不太明白问题的标题。JavaScript中的空格符号是空格…我测试了你说的。。但当我按下选项卡时,仍然会追加一个选项卡(\t
)button@MartinAJ您正在使用问题中显示的更改版本,对吗?您已经在使用四个空格而不是“\t”
?为了让我的问题更清楚,我想当您按选项卡时,您可以按backspace 4次。@MartinAJ是的,显然如果您仍然保留“\t”
,那么您将得到一个“\t”
。如果你想要四个空格,那么就用四个空格,正如你在问题中已经做的那样。这就是为什么我在我的帖子中说“你只是忘记了[…]”,而不是“你做错了,应该这样做”。