【发布时间】:2021-04-22 13:48:38
【问题描述】:
我的任务是不让用户在 textArea 中键入“%”,因此我这样做了
但是一旦我在文本区域内点击,我仍然可以输入 '%'... 这意味着 onkeypress 没有识别我的功能,或者功能本身是错误的。
$scope.test = function() {
var txtarea = document.getElementById("exampleFormControlTextarea1");
txtarea.addEventListener("input", function() {
txtarea.value = txtarea.value.replaceAll("%", "");
})
}
我也试过这种方式:
function myfunction () {
var txtarea = document.getElementById("exampleFormControlTextarea1");
txtarea.addEventListener("input", function() {
txtarea.value = txtarea.value.replaceAll("%", "");
})
}
<div class="col-md-12 label-base">
<label for="exampleFormControlTextarea1">Justify</label>
<textarea style="resize: none" ng-disabled="negociacaoEspecCtrl.proposta.flagDesabilitaEdicaoProposta"
class="form-control observacoes" id="exampleFormControlTextarea1" rows="3"
ng-model="negociacaoEspecCtrl.proposta.dadosCadastro.negociacaoEspecial.justificativaNegociacaoEspecial"
onkeypress="test()"></textarea>
</div>
【问题讨论】:
-
不要在已经是事件侦听器的函数中添加事件侦听器。
-
所以在 getElementById... 之后我删除 'txtarea.addEventListener("input", function() ' 并且只让 ' txtarea.value = txtarea.value.replaceAll("%", "") ;' ?
-
@PedroPastori 我也会删除
txtarea.addEventListener...。这不是真正的 AngularJS 做事方式。
标签: javascript angularjs function controller textarea