oninput 在 Angular 中不工作。选择?
oninput not working in Angular. Alternative?
我正在尝试创建一个读取输入值并触发一系列 true/false 的函数,但是下面的代码不断返回 "passStrength is not defined."
据我所知,Angular 不支持 oninput。如何在 Angular 中实现这一目标?
在我的控制器中:
$scope.passStrength = function(input) {
if (input.value.toLowerCase().indexOf(/[a-z]/) > -1) {
$scope.lwrChar = true;
console.log('lower ' + $scope.lwrChar);
} else if (input.value.toUpperCase().indexOf(/[A-Z]/) > -1) {
$scope.uprChar = true;
console.log('upper ' + $scope.uprChar);
} else if (input.value.indexOf() == !isNaN(n)) {
$scope.nbrChar = true;
console.log('number ' + $scope.nbrChar);
} else if (input.value.length >= 8) {
$scope.countChar = true;
console.log('count ' + $scope.countChar);
}
};
在我的标记中:
<input id="password" oninput="passStrength()" />
要在输入更改时触发事件,请使用 ng-change。此外,您必须定义一个 ng-model。
<input ng-model="password" ng-change="passStrength(password)" />
编辑:
创建了一个 plunker 演示
我正在尝试创建一个读取输入值并触发一系列 true/false 的函数,但是下面的代码不断返回 "passStrength is not defined." 据我所知,Angular 不支持 oninput。如何在 Angular 中实现这一目标?
在我的控制器中:
$scope.passStrength = function(input) {
if (input.value.toLowerCase().indexOf(/[a-z]/) > -1) {
$scope.lwrChar = true;
console.log('lower ' + $scope.lwrChar);
} else if (input.value.toUpperCase().indexOf(/[A-Z]/) > -1) {
$scope.uprChar = true;
console.log('upper ' + $scope.uprChar);
} else if (input.value.indexOf() == !isNaN(n)) {
$scope.nbrChar = true;
console.log('number ' + $scope.nbrChar);
} else if (input.value.length >= 8) {
$scope.countChar = true;
console.log('count ' + $scope.countChar);
}
};
在我的标记中:
<input id="password" oninput="passStrength()" />
要在输入更改时触发事件,请使用 ng-change。此外,您必须定义一个 ng-model。
<input ng-model="password" ng-change="passStrength(password)" />
编辑: 创建了一个 plunker 演示