如何使用ui-mask从角度输入中获取模型中的蒙版日期?

ste*_*776 19 mask angularjs input-mask

我有一个视图,要求用户将他们的生日输入到文本框中.

我正在使用UI-Utils的mask指令.

我的视图中有这个输入元素:

<input ui-mask="99/99/9999" placeholder="MM/DD/YYYY" type="text" name="uBirthdate" ng-model="user.birthdate" required/>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我将范围设置为

myApp.controller('HomeCtrl', function ($scope, myService){

    $scope.user = registerService.getCurrentUser();

    $scope.submit = function () {
        //do something with $scope.user.birthdate
    };

    }
});
Run Code Online (Sandbox Code Playgroud)

我的问题是,在我的控制器中,birthdate属性包含来自输​​入的值没有屏蔽字符所以输入

11/20/1980在视图中变为11201980$ scope的属性

如何确保在控制器中使用有效的屏蔽日期?仅供参考,此日期将作为JSON发送到我的服务器的POST请求中.

map*_*ap7 44

升级到最新的angular-ui并使用以下语法

ui-mask="99/99/9999" model-view-value="true"
Run Code Online (Sandbox Code Playgroud)

model-view-value将掩码保留在模型对象上.

  • 可以添加[momentjs](http://momentjs.com)来检查客户端验证,如@ map7所述. (2认同)

Jak*_*son -2

作为字符串:

var string = '11201980';
var month = string.substring(0,2);
var day = string.substring(2,4);
var year = string.substring(4,8);
var birthday = month + '/' + day + '/' + year;
Run Code Online (Sandbox Code Playgroud)

然后,作为日期:

var birthdate = new Date(birthday);
Run Code Online (Sandbox Code Playgroud)