Vorrei verificare un campo di input per i numeri delle carte di credito.Come impostare un campo di input per ng-invalid in angularJS
Il campo deve rimanere invalido finché non ha una lunghezza minima di 13. Poiché l'utente deve essere in grado di riempire lo spazio nel campo, rimuovo quegli spazi all'interno di una funzione javascript. In questa funzione vorrei controllare il numero della carta di credito (senza spazi) e impostarlo su ng-invalid fintanto che la lunghezza minima è minore di 13 e la lunghezza massima è maggiore di 16.
Dovrebbe essere qualcosa di simile:
$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);
}
}
questa sarebbe la parte del 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>
Come posso raggiungere questo obiettivo?
Utilizzare 'ng -disabled' invece di 'document.getElementById (" ccProvider "). disabled' –
Si potrebbe voler ck out la direttiva mask di ui angolare: http://angular-ui.github.io/ui-utils/#/mask –