Ich habe eine Ansicht, die erfordert, dass der Benutzer ihr Geburtsdatum in ein Textfeld eingibt.Wie bekomme ich maskiertes Datum im Modell von Eingabe in eckigen mit UI-Maske?
Ich benutze die Maskierungsanweisung von UI-Utils.
Meine Ansicht hat dieses Eingabeelement darin:
<input ui-mask="99/99/9999" placeholder="MM/DD/YYYY" type="text" name="uBirthdate" ng-model="user.birthdate" required/>
und in meinem Controller habe ich den Umfang aufgebaut wie
myApp.controller('HomeCtrl', function ($scope, myService){
$scope.user = registerService.getCurrentUser();
$scope.submit = function() {
//do something with $scope.user.birthdate
};
}
});
Mein Problem ist, dass die birth Eigenschaft enthält in meinem Controller, der Wert von der Eingabe OHNE die Maskierungszeichen, so eine Eingabe von
11/20/1980
in der Ansicht wird 11201980
als eine Eigenschaft auf dem $ Scope
Wie kann ich sicherstellen, dass ich ein gültiges Maskedatum habe, um mit meinem Controller zu arbeiten? Just FYI, dieses Datum wird als JSON in einer POST-Anfrage an meinen Server gesendet.
Gibt es eine Möglichkeit für sie 12/19/9999 so zu tun, dass Sie nicht ungültig Daten eingeben können. – PixMach
Ich würde eine clientseitige Validierungsbibliothek verwenden, um gültige Daten zu überprüfen, anstatt die Maske zu diesem Zweck zu verwenden. – map7
[momentjs] (http://momentjs.com) kann hinzugefügt werden, um die Client-seitige Validierung als @ map7 zu überprüfen. –