我正在处理一个页面,接受用户输入4位数字(恰好4位)的密码。类似这样。
<input type="number" ng-model="passCode" class="form-control" onpaste="return false" id="passCodeField" ng-disabled="!enablePassCode" ng-change="onInputPasscode()" ng-keypress="onKeyPressPasscode($event)"/>
onKeyPressPasscode function
$scope.onKeyPressPasscode = function($event) {
if(isNaN(String.fromCharCode($event.which || $event.keyCode))){
$event.preventDefault();
}
}
onInputPasscode()函数:
$scope.onInputPasscode = function() {
if ($scope.passCode.toString().length > 4){
$scope.passCode = $scope.passcode;
}
if($scope.passCode.toString().length == 4) {
$scope.passcode = $scope.passCode;
$scope.disableContinue = false;
session.put('pinFlow',true);
} else {
console.log("current length - " + $scope.passCode);
$scope.disableContinue = true;
session.put('pinFlow',false);
}
}
这个问题在输入全零时失败。也就是说,当前长度没有更新,因此用户可以随意输入多个零。我如何接受4位数字零作为输入,并仍满足我的检查要求?
这是在angular 1.5.8v中的问题。而我不是
AngularJS
专家。所以任何帮助都将不胜感激。另外,请让我知道是否需要其他信息,我会相应地更新答案。提前致谢。
input type=number
来作为 PIN 输入字段的类型,因为 PIN 不是数字类型。相反,应该使用input type=text
或者更好的选择是input type=password
。此外,我也不会监听keypress
事件,而是使用input
事件。 - connexo