gpt4 book ai didi

javascript - 控制字符(\n、\t 等)不会立即在文本区域输入中更新

转载 作者:行者123 更新时间:2023-11-29 14:44:42 26 4
gpt4 key购买 nike

我的第一个问题是,如果我在 textarea 中点击 Tab 并开始输入,它包含的值开头没有 \t 字符的字符串。 (无论在键入普通文本之前按下 Tab 键多少次)。

第二期。键入一些文本并点击 Tab 后,\t 字符再次没有出现在值中。但是,如果此时我继续输入文本,textarea 中的值现在包含该位置预期的 \t 字符。如果我输入 Enter,就会出现这种情况,\n 字符不会出现;但如果我继续打字,它会以与以前相同的方式显示吗?

如何处理这两个问题?

angular.module('myapp', [])
.controller('MainCtrl', function($scope) {
$scope.foo = {
txt: ''
};

$scope.kd = function(e) {

if (e.keyCode === 9) {
var ta = angular.element(e.target);
var val = ta.val();
var st = ta[0].selectionStart,
ed = ta[0].selectionEnd;
ta.val(val.substring(0, st) + '\t' + val.substring(ed));
ta[0].selectionStart = ta[0].selectionEnd = st + 1;
//console.log(ta.triggerHandler);
ta.triggerHandler('change');
e.preventDefault();
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.js"></script>
<div ng-app="myapp">
<div ng-controller="MainCtrl">
<textarea ng-model="foo.txt" rows="10" cols="75" ng-keydown="kd($event)"></textarea>
<br>
<br>
<pre>
{{ foo | json }}
</pre>
</div>
</div>

最佳答案

Angular 自动 trim 输入值。在输入标签上设置 ng-trim="false" 以禁用默认 trim 。

ngTrim

If set to false Angular will not automatically trim the input. This parameter is ignored for input[type=password] controls, which will never trim the input.

(default: true)

angular.module('myapp', [])
.controller('MainCtrl', function($scope) {
$scope.foo = {
txt: ''
};

$scope.kd = function(e) {

if (e.keyCode === 9) {
var ta = angular.element(e.target);
var val = ta.val();
var st = ta[0].selectionStart,
ed = ta[0].selectionEnd;
ta.val(val.substring(0, st) + '\t' + val.substring(ed));
ta[0].selectionStart = ta[0].selectionEnd = st + 1;
//console.log(ta.triggerHandler);
ta.triggerHandler('change');
e.preventDefault();
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myapp">
<div ng-controller="MainCtrl">
<textarea ng-model="foo.txt" rows="10" cols="75" ng-trim="false" ng-keydown="kd($event)"></textarea>
<br>
<br>
<pre>
{{ foo | json }}
</pre>
</div>
</div>

关于javascript - 控制字符(\n、\t 等)不会立即在文本区域输入中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34265900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com