Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度:ng更改与jQuery混合,在第二次更改时不触发_Javascript_Jquery_Angularjs_Regex - Fatal编程技术网

Javascript 角度:ng更改与jQuery混合,在第二次更改时不触发

Javascript 角度:ng更改与jQuery混合,在第二次更改时不触发,javascript,jquery,angularjs,regex,Javascript,Jquery,Angularjs,Regex,这是我的html: <input type="text" ng-trim="false" ng-change="onPOChange()" ng-model="PONumber" name="PONumber" id="PONumber"/> 我的目标是在用户输入时从输入框中过滤掉所有非字母数字键 问题是,如果用户键入“!!”,则只有第一个“!”触发过滤功能,第二个“!”不会触发ng更改 我认为这是因为,第一个事件是对输入的更改,然后通过回调进行更正,但是第二个“!”

这是我的html:

<input type="text" ng-trim="false" ng-change="onPOChange()"
       ng-model="PONumber" name="PONumber" id="PONumber"/>
我的目标是在用户输入时从输入框中过滤掉所有非字母数字键

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

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

如果我键入“1234”,然后键入“!”,则“1234!”将被过滤为“1234”。然后,当我再次输入“!”时,它不被认为是一个更改,因为“1234!”是最后输入的


我是一个有角度的初学者,仍然处于复制粘贴级别

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

模板:

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

您可以使用ng change本身尝试下面的代码,也可以使用给定的工作示例检查这一点

模板:

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

尝试
ng keyup
:您不需要使用jQuery或任何DOM选择来选择输入;使用
$scope.PONumber=$scope.purgeFilter($scope.PONumber)
通过使用jQuery设置
元素的
val
,代码将与。像这样将jQuery与AngularJS混合使用会带来麻烦。请尝试使用
ng keyup
:您不需要使用jQuery或任何DOM选择来选择输入;使用
$scope.PONumber=$scope.purgeFilter($scope.PONumber)
通过使用jQuery设置
元素的
val
,代码将与。像这样把jQuery和AngularJS混合在一起是自找麻烦。在这一点上,我不知道我的理论是否正确,至于为什么第二个事件没有触发。。。但是你的小改动,加上避免使用JQuery,使我的理论变得毫无意义。我的代码现在可以在您的帮助下工作。达尼亚瓦德!在这一点上,我不知道我的理论是否正确,至于为什么第二个事件没有发射。。。但是你的小改动,加上避免使用JQuery,使我的理论变得毫无意义。我的代码现在可以在您的帮助下工作。达尼亚瓦德!
$scope.onPOChange = function (PONumber) {
   $scope.PONumber = $scope.purgeFilter(PONumber);
};