を発射ないjQueryを使って混合は、ここに私のhtmlです::NG-変更秒変化に
<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()));
};
私の目標は、すべての非英数字キーをフィルタリングすることです入力ボックスから入力します。
ユーザーが「!!」と入力すると、最初の「!」だけが問題になります。フィルタリング機能を起動し、2番目の "!"変更を引き起こさない。
私はそれは、最初のイベントは入力への変更であり、コールバックによって修正されたが、2番目の "!"実際の変更とは解釈されません。
"1234"、 "!"と入力すると、 "1234!"フィルタリングされて "1234"になります。次に、「!」と入力すると再び、それは変化とはみなされません。なぜなら、 "1234!"最後に入力された入力です。
私は初心者ですが、角度はまだコピーアンドペーストレベルです。
する代わりに、 'NG-keyup'をお試しください:https://docs.angularjs.org/api/ng/directive/ngKeyup –
あなたがドン」 jQueryやDOM選択を使用して入力を選択する必要があります。 '$ scope.PONumber = $ scope.purgeFilter($ scope.PONumber)'を使用してください –
''要素の 'val'をjQueryで設定すると、コードは[ngModelController](https://docs.angularjs .org/api/ng/type/ngModel.NgModelController)。このようにAngularJSとjQueryを混在させることは問題を求めています。 – georgeawg