gpt4 book ai didi

javascript - Angular : ng-change mixed with jQuery not firing on second change

转载 作者:行者123 更新时间:2023-12-01 02:36:58 28 4
gpt4 key购买 nike

这是我的 html:

<input type="text" ng-trim="false" ng-change="onPOChange()"
ng-model="PONumber" name="PONumber" id="PONumber"/>

这是我的回调函数:

$scope.purgeFilter = function (input) {
var output = input.replace(/[^\w]/gi, "");
console.log(input + ' --> ' + output);
return output;
}
$scope.onPOChange = function () {
$('#PONumber').val($scope.purgeFilter($('#PONumber').val()));
};

我的目标是在用户键入时从输入框中过滤掉所有非字母数字键。

问题是,如果用户输入“!!”,则只有第一个“!”触发过滤功能,第二个“!”不会触发 ng-change。

我认为这是因为,第一个事件是对输入的更改,然后通过回调进行纠正,但是第二个“!”不被解释为实际的更改。

如果我输入“1234”,然后输入“!”,即“1234!”被过滤为“1234”。然后当我输入“!”时再次强调,这不被视为更改,因为“1234!”是最后输入的内容。

我是 Angular 的初学者,仍处于复制粘贴水平。

最佳答案

您可以尝试像下面的代码一样使用 ng-change 本身,也可以检查这个 plunker与您给定的工作示例。

模板:

<input type="text" ng-trim="false" ng-change="onPOChange(PONumber)" ng-model="PONumber" name="PONumber" id="PONumber"/>

Controller :

$scope.onPOChange = function (PONumber) {
$scope.PONumber = $scope.purgeFilter(PONumber);
};

关于javascript - Angular : ng-change mixed with jQuery not firing on second change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47835857/

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