【发布时间】:2014-05-23 20:11:48
【问题描述】:
我想检查信用卡号的输入字段。
该字段在最小长度为 13 之前应保持无效。由于用户应该能够在字段中填写空格,因此我在 javascript 函数中删除了这些空格。 在此函数中,我想检查信用卡号(不带空格)并将其设置为 ng-invalid,只要最小长度小于 13 且最大长度大于 16。
应该是这样的:
$scope.ccHandler = function() {
if ($scope.ccNumber == '') {
document.getElementById("ccProvider").disabled = false;
}
$scope.ccNumber = inputCC.value.split(' ').join(''); //entfernt die Leerzeichen aus der Kreditkartennummer vor der übergabe an den Server
console.log("das ist meine CC: " + $scope.ccNumber);
isValidCreditCardNumber($scope.ccNumber);
getCreditCardProvider($scope.ccNumber);
document.getElementById("ccProvider").disabled = true;
if ($scope.ccNumber.length < creditCardNumberMinLength || $scope.ccNumber.length > creditCardNumberMaxLength) {
//$scope.ccNumber.ng-invalid = true;
console.log("ccNumber ist noch ungültig!");
//document.getElementById("inputCC").$setValidity("ccNumber", false);
}
}
这将是 XHTML 的一部分:
<div class="form-group" ng-switch-when="CreditCard">
<label class="col-xs-3 col-sm-3 control-label">Kreditkartennummer</label>
<div class="col-xs-5 col-sm-5 col-md-5">
<input name="ccNumber" class="form-control" type="text" id="inputCC" ng-change="ccHandler();updateCount()" ng-model="ccNumber" ng-required="true"/>
</div>
</div>
我怎样才能做到这一点?
【问题讨论】:
-
请使用
ng-disabled而不是document.getElementById("ccProvider").disabled -
你可能想查看 angular ui 的 mask 指令:angular-ui.github.io/ui-utils/#/mask
标签: javascript angularjs validation input